Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Nachbarzellen leeren nach Formatänderung
14.05.2008 11:21:05
Mario
Hallo liebe Excel-Freunde,
ich habe folgendes Problem mit einem Makro zu lösen:

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect
Range("C10:FU64").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Range("C10").Select
ActiveSheet.Protect
End Sub


Soweit alles ok, aber gleichfalls soll das Makro auch alle Nachbarzellen leeren, deren Format gelöscht wurde.
Mit ActiveCell.Offset(0, 1) = "" passiert gar nichts.
Kann jemand helfen ?
Vielen Dank und Grüsse an alle
Mario

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 11:32:00
Renee
Hi Mario,
Meinst du so?

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect
Range("C10:FU64").Borders(xlDiagonalDown).LineStyle = xlNone
Range("C10:FU64").Borders(xlDiagonalUp).LineStyle = xlNone
Range("D10:FV64").Value = ""
ActiveSheet.Protect
End Sub


GreetZ Renée

AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 13:20:39
Mario
Hallo Renée,
nein, leider falsch, da dann im angegebenen Bereich die Inhalte aller Zellen geleert werden, also auch die Inhalte der Zellen, die vorher das Kreuz hatten. Es soll aber immer nur die Zelle daneben geleert werden.
Der Bereich hat 14 Spalten und 14 Zeilen, also soll immer nur jede zweite Spalte geleert werden.
Ich hoffe Du hast verstanden.
Gruss Mario

Anzeige
AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 13:29:00
Renee
Hi Mario,
Nein ich hab nicht verstanden. Denn dein Code löscht einfach im ganzen Bereich die Diagonal-Rahmen.
Ob da was vorher war oder nicht. Also Frage:
Muss festgestellt werden, ob ein 'Kreuz' in der Zelle ist und dann und nur dann die Zelle rechts davon geleert werden ? Dann sähe der Code natürlich anders aus. Es wäre vielleicht nicht schlecht, wenn die Anforderungen, was man machen will, jeweils schon in der Anfrage klar formuliert sind.
GreetZ Renée

AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 14:27:00
Mario
Hallo Renée,
richtig, dann und nur dann soll die Zelle geleert werden.
Ich war in guter Hoffnung, das so ausgedrückt zu haben. Tut mir leid, dass es dann doch unverständlich war.
Noch mal zum Verständnis: Ich habe ein Arbeitsblatt, in dem Zellen mehrerer Bereiche durch Doppelklick angekreuzt werden und gleichfalls die jeweils benachbarte Zelle das Wort "ja" erhält. Damit frage ich die Werte der angekreuzten Zellen weiter unten im Arbeitsblatt ab. Durch erneuten Doppelklick auf eine angekreuzte Zelle lösche ich das Kreuz und den Wert "ja" in der jeweiligen Nachbarzelle wieder.
Da ich in meinem Arbeitsblatt insgesamt 588 Kreuze machen kann, will ich ein Makro erstellen, das mir die Möglichkeit gibt alle Kreuze auf einmal zu löschen, sowie deren zugehörige Nachbarzelle zu leeren, quasi ein globales zurück setzen des gesamten Bereiches. Die Werte, die in den angekreuzten Zellen stehen, dürfen jedoch nicht verloren gehen.
Gruss Mario

Anzeige
AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 15:08:17
Renee
Hi Mario,
Dann ist es nun klar und dein Makro müsste so aussehen:

Private Sub CommandButton2_Click()
Dim rC As Range
Application.ScreenUpdating = False
ActiveSheet.Unprotect
For Each rC In Range("C10:FU64")
If rC.Borders(xlDiagonalDown).LineStyle  xlNone And _
rC.Borders(xlDiagonalUp).LineStyle  xlNone Then
rC.Borders(xlDiagonalDown).LineStyle = xlNone
rC.Borders(xlDiagonalUp).LineStyle = xlNone
rC.Offset(0, 1).Value = ""
End If
Next
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub


GreetZ Renée

AW: Nachbarzellen leeren nach Formatänderung
14.05.2008 15:45:00
Mario
Hallo Renée,
ich danke Dir 1000fach. Klappt wunderbar. Arbeitet auch viel schneller, als mein Makro. Bei mir habe ich jede zweite Spalte löschen lassen und da konnte man zuschauen, wie das Makro die Spalten abarbeitet.
Also noch mal vielen Dank.
Gruss Mario

Anzeige
AW: mit .ClearContents
14.05.2008 11:34:00
Hoffi
Hallo,
ActiveCell.Offset(0, 1).ClearContents
Grüße
Hoffi

Was hat Activecell mit Selection...
14.05.2008 11:37:00
Renee
am Hut?
Mit ActiveCell.Offset(0, 1) = "" passiert gar nichts.
ActiveCell.Offset(0, 1).ClearContents passiert auch nicht nix... den beide Befehle löschen gerade mal die Zelle rechts von der ersten Zelle der Selection !!!
GreetZ Renée

AW: Was hat Activecell mit Selection...
14.05.2008 11:56:08
Hoffi
Hallo Renée,
das stimmt schon, und Deine Lösung ist ja auch die richtige.
Ich hab nur seinen Ansatz ActiveCell.Offset(0,1) ="" berichtigt.
Grüße
Hoffi

302 Forumthreads zu ähnlichen Themen


Hallo zusammen.
Wenn in der Datei ein Autofilter gesetzt ist und auch in einem beliebigen Feld ein Kriterium gesetzt ist, wie bekomme ich per VBA die Anzeige ALLER Elemente hin.
Mein Versuch mit Range(XYZ).Autofilter
löscht diesen komplett, was aber nciht gewollt ist. Und .Autofi...
Anzeige

Hallo Leute,
ich habe hier ein merkwürdiges Problem :
In einer Liste (Zeile 8 bis 158) befindet sich in einigen Zeilen in Spalte D ein Eintrag, in anderen Zeilen nicht.
Ich filtere nun in Spalte D nach "(nicht leere)" und es werden alle Zeilen mit Eintrag in Spalte D angezeigt - abe...

Versuche die Funktion AnzahlLeereZellen zu benutzen. Excel tut aber so als ob es dieses Funktion nicht kennt. Muß sie irgenwie nachinstalliert werden?
Anzeige

Hallo zusammen!
Ich habe per VBA den Autofilter in meiner Tabelle gesetzt und es funktioniert auch wenn ich in A1 den Suchbegriff eintrage aber ich muss wenn ich alles sehen möchte den Filter von Hand zurücksetzten.
Wie kann man das auch per Code erreichen wenn A1 = "" oder aber "alle"...

Hallo,
ich habe schon gesucht, doch leider nichts passenden gefunden.
zu meinem Makro: Sub Test() Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(0, 24).Select Range(Selection, Selection.End(xlUp)).Select 'ab hier mein Problem: Wenn in diesem Bereich eine leere Zelle...

Hallo allerseits,
in einer Tabelle habe ich eine Spalte mit Autofilter. Die Werte des Autofilters sind Höhenangaben wie z.B. "1 m", "2 m", aber es kommt auch der Wert "> 5 m" vor, sprich größer wie 5 Meter.
In VBA setze ich den Autofilter mit der Variable "wert"
ActiveSheet.Range...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige