Zelleninhalt wiederherstellen
hallo,
ich habe ein problem, kann mir vllt jemand helfen.
i habe einige zelleninhalte per makro gelöscht und möchte dieser aber wieder anzeigen lassen. also zum beispiel
ich habe irgenwo 2 eingegeben, dann löscht mein makro den bereich B4:Z4:
wenn ich irgendwo 4 eingebe, soll der bereich E4:Z4 gelöscht werden aber B4:E4 wieder angeezeigt werden so wie es zuvor war. also quasi den gelöschten zelleninhalt bzw formatierungsinhalt wieder anzeigen
danke
Antwort schreiben
Antwort 1 von Marie vom 12.12.2019, 12:10 Options
Dann darfst Du den Inhalt nicht löschen, dann musst Du ihn ausblenden, unsichtbar machen. Wenn er gelöscht ist ist er weg.
Kannst aber auch das gesamte Tabellenblatt irgendwo als Kopie hinterlegen und dann dort den Inhalt wieder zurückholen.
Gruß Marie
Antwort 2 von hansel_H vom 12.12.2019, 12:19 Options
hallo
dank für die schnelle antwort.
geht das ausblenden von formatierungen überhaupt? bisher habe ich "ClearContents" und "ClearFormats" verwendet.
wie würde dann der Rückholvorgang des ausgeblendeten funktionieren? und wie funktioniert das Ausblenden per Makro?
gruß
hansel
Antwort 3 von aiuto vom 12.12.2019, 13:11 Options
Hi Hansel,
Würde es event. ausreichen die Schriftfarbe = Hintergrundfarbe zu setzen?
Etwa nach folgendem Schema:
Private Sub CommandButton1_Click()
If Range("B4:E4").Font.Color <> Range("B4:E4").Interior.Color Then
Range("B4:E4").Font.Color = Range("B4:E4").Interior.Color
Else
Range("B4:E4").Font.ColorIndex = xlAutomatic
End If
End Sub
Damit wären die Inhalte Unsichtbar.
mfg
vom Helfer
Antwort 4 von hansel_H vom 12.12.2019, 13:31 Options
hallo,
danke für deine antwort, das ist zwar nicht das was ich suche aber es würde theoretisch genügen, nur wenn ich dieses makro 2 mal laufen lasse dann werden die zuvor ausgeblendeten zellen wieder eingeblendet das soll nicht geschehen denn dieses makro würde bei mir dann irgendwo in einer select case verzweigung auftreten.
also zum verständnis, dein makro blendet die inhalte der zellen b4:e4 aus?
kann man das auch so modifizieren dass "oben" in der f(x) zeile nicht mehr die werte stehen, aber das wäre ja löschen oder?
MfG
hansel
Antwort 5 von hansel_H vom 12.12.2019, 13:35 Options
hallo,
noch etwas anderes:
ich hab malö in der excel-VBA hilfe rum geschaut und die HIDDEN-Eigenschaft gefunden, mit der kann man etwas ausblenden, aber irgendwie nur ganze zeilen bzw spalten. kann man damit nicht einzelne zellen ausblenden bzw einblende?
gruß
hansel
Antwort 6 von hansel_H vom 12.12.2019, 14:11 Options
hallo aiuto,
dein vorschlag aus AW3 funktioniert doch nicht so oder so ähnlich wie ich gedacht hätte, da nur die zelleninhalte ausgeblendet werden, aber nicht die formatierungen(Rand,Zentrierung usw).
das wollt ich dir nur zuf info sagen
gruß
hansel
Antwort 7 von aiuto vom 12.12.2019, 14:21 Options
Zitat:
nur wenn ich dieses makro 2 mal laufen lasse dann
..Wollte damit auch nur demonstrieren, wie Du die Farben wieder zurücksetzen kannst.
Also:
Range("B4:E4").Font.Color = Range("B4:E4").Interior.Color
setzt die Schrftfarbe im Bereich[B4:E4] auf die Hintergrundfarbe (unsichtbar) und
Range("B4:E4").Font.ColorIndex = xlAutomatic
stellt die Schriftfarbe zurück [sichtbar]auf default.
Wenn das nicht genügt, mußt Du wie @Marie schon erwähnte die Bereichs-Inhalte ausschneiden auf einem anderen Tabellenblatt, oder in enem statischen Array speichern, und von dort bei Bedarf zurückholen.
Zitat:
kann man das auch so modifizieren dass "oben" in der f(x) zeile nicht mehr die werte stehen, aber das wäre ja löschen oder?
Wohl wahr.Aber welchen Zweck verfolgst Du denn genau? Vielleicht gibts elegantere Lösungen für Dein Anliegen.
mfg
vom Helfer
Antwort 8 von hansel_H vom 12.12.2019, 14:47 Options
hallo,
also meine Situation ist folgende:
ich habe eine Excel Tabelle angelegt bestehend aus 20 teilen.
der anwender soll dann eine zahl zwischen 1 und 10 eingeben.
gibt er 1 ein sollen alle teile ausser die ersten 2 ausgblendet werden, gibt er 2 ein sollen die ersten 4 teile nicht ausgeblendet werden, gibt er 3 ein sollen die ersten 6 teile ausgeblendet werden, ... , gibt er 10 ein soll nichts ausgeblendet werden
gibt er aber zB erst 2 ein und dann 6, dann soll der teil auch wieder eingeblendet werden also die ersten 12 teile.
Bem:
die genauen zellenangaben schreibe ich jetzt nicht hin, fals du diese bräuchtest dann sags bitte.
Also vllt hilft das, vielen dank schon mal
MfG
hansel
Antwort 9 von aiuto vom 12.12.2019, 14:56 Options
Nachgefragt:
Sollen (könnten) etwa die kompletten Spalten ausgeblendet werden?
Das würde es Vereinfachen.
mfg
vom Helfer
Antwort 10 von aiuto vom 12.12.2019, 15:53 Options
Deine Aussagen sind leider etwas widersprüchlich.
Zitat:
gibt er 3 ein sollen die ersten 6 teile ausgeblendet werden
und[/]
gibt er aber zB erst 2 ein und dann 6, dann soll der teil auch wieder eingeblendet werden also die ersten 12 teile.
Ich hab das 'mal so interpretiert:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
Dim wert%
If Not IsNumeric(Target.Value) Then
MsgBox ("falsche Eingabe: " & Target)
Range("B2").Select
Exit Sub
End If
wert = Target.Value
ActiveSheet.Columns(Chr(65 + 2) & ":T").Hidden = False
Select Case wert
Case 1 To 9
ActiveSheet.Columns(Chr(65 + wert * 2) & ":T").Hidden = True
End Select
End Sub
Die Anwender-Eingabe erfolgt in Zelle [B2]
mfg
vom Helfer
Antwort 11 von hansel_H vom 13.12.2019, 07:35 Options
hallo aiuto,
also erst mal vielen dank für deine bemühung.
dein vorschlag aus AW10 funktioniert bei mir nicht, das makro kann nicht gestartet werden(ich glaube der Prozedurname soll anders sein?) es kommt aber kein laufzeitfehler.
zu deiner Frage wegen dem, dass komplette spalten ausgebledet werden sollen bzw können:
Das ist leider nicht so, da in dem gesamten Tabellenblatt auch noch andere angaben stehen, die mit dem hier nichts zu tun haben, und ersichtlich bleiben soll.
OHHH... entschuldigung bitte, das hab ich falsch hingeschieben:
gibt er 3 ein sollen die ersten 6 teile ausgeblendet werden
soll natürlich heißen:
gibt er 3 ein sollen die ersten 6 teile eingeblendet werden
ist es so verständlich?
genaure Beschreibung:
Eingabe:
1 dann: ausblenden: H9:M20 & A23:M76
2 dann: ausblenden: A23:M76
3 dann: ausblenden: H23:M34 & A37:M76
4 dann: ausblenden: A37:M76
5 dann: ausblenden: H37:M48 & A51:M76
6 dann: ausblenden: A51:M76
7 dann: ausblenden: H51:M62 & A65:M76
8 dann: ausbelden: A55:M76
9 dann: ausblenden: H65:M76
10 dann: einblenden: A9:M76
also hab vielen dank
gruß
hansel
und...
sorry dass ich mich erst jetzt melde