07.06.2022, 22:02 (Dieser Beitrag wurde zuletzt bearbeitet: 07.06.2022, 22:14 von Egon12.)
Hallo Martin,
der eigentlich gängige Weg mittels .Find die passende Spalte zu finden klappt so nicht, da dies eine Range Funktion ist und ein neues Change Ereignis auslöst. Da bleibt nur der Weg über eine Schleife die passende Spalte zu finden. Der Bereich #GEN habe ich als Block durchlaufen. Die Prozedur findet Anfang und Ende des Blockes, dass falls der Bereich der Generationen verändert wird, das korrekt erkannt wird. Die anderen Spalten habe ich mit Namenszuordnung zu den Spalten via Schleife angelegt. Zwecks Test, ob es so passt, erst mal nur 3 Schleifen (Vornamen, Namen und Rufnamen).
Guten Tag Uwe für die Modifikation. Wenn ich die Einträge in den Spalten einzell lösche funktioniert es einwandfrei, ebenso beim Generationen Block 7 bis 26 , da werden im Generationen Block 57 bis 68 die Daten gelöscht. Ist es möglich, dass zusätzlich zum Generationen Block auch noch die Einträge in Spalte 27 und 70 gelöscht werden.Wenn es zu aufwendig wird kann ich auch so damit leben. Der Rest funktioniert wie gewünscht. Wünsche ei schöner Tag Gruss Martin
08.06.2022, 13:08 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2022, 13:08 von Egon12.)
Hallo Martin,
um 27 und 70 mit zu entfernen ändere den Teil so:
Code:
For i = lngGenStart - 1 To lngGenEnde ' Wert im Generationsblock sowie 27 und 70 löschen If .Cells(VarZeile, i) = varWert Then MsgBox .Cells(VarZeile, i) & " in Spalte " & i .Cells(VarZeile, i) = "" .Cells(VarZeile, 27) = "" .Cells(VarZeile, 70) = "" End If Next i
Guten Tag Uwe Danke für die Modifikation. Funktioniert einwandfrei. Genauso habe ich mir das vorgestellt. Freue mich schon auf das Endergebniss, oder auf deine Hilfe, um die restlichen Löschungen zu realisieren. Gruss Martin
Guten Tag Uwe Ich kriege es nicht zum Laufen. Ich habe versucht, dass Makro zu vervollständigen und zum Laufen zu bringen, leider war der Erfolg nicht allzu gross. Alle gelb markierten Zellen wurden gelöscht, der Rest jedoch nicht. Ich vermute es liegt an den Überschriften. Wenn ja, dann könnte man von den Spalten "A" bis "AV" die Spaltenbezeichnungen nehmen, da diese immer am gleichen Ort stehen und sich nicht ändern. Ich weiss aber wie das Makro geändert werden muss. Darf ich nochmals um deine Hilfe bitten? Mit freundlichen Guss Martin
du hast erst mal die einzelnen Prozedurschritte richtig zugeordnet. Aber diese werden über ein Change Ereignis ausgelöst: Set Bereich = Intersect(Target, Range("G7:AH800")) Das bedeutet, dass dieser Bereich entsprechend angepasst werden muss. Also: Set Bereich = Intersect(Target, Range("G7:AV800")) Anbei die Datei
Guten Tag Uwe für das modifizierte Makro. Bis auf das Löschen der Spalte "Adresse" läuft es . Hoffe, das auch noch hin zu kriegen, sonst melde ich mich wieder. Gruss Martin
Guten Tag Uwe, habe versucht den Fehler zu finden, um die Einträge der Spalte "Wohn Adresse" zu löschen. Leider ohne Erfolg. Wo liegt der Fehler ? Bitte um Hilfe. Gruss Martin
die Ursache ist ganz simpel und durch entfernen eines Leezeichens zu lösen: In Zelle AN6 ist hinter dem Spaltennamen ein Leerzeichen. Das kannst du entweder entfernen oder falls du das nicht möchtest dann den gesuchten Inhalt in der Prozedur entsprechend anpassen:
Code:
If ActiveCell.Offset(-ActiveCell.Row + 6, 0) = "Wohn Adresse " Then