Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Namenssuche und darunter schreiben

Namenssuche und darunter schreiben
22.12.2016 16:58:14
TCO99
Hallo zusammen,
ich möchte auf einem Tabellenblatt per VBA eine Zelle suchen, der ich vorher einen Namen gegeben hatte.
Wenn ich die Zelle mit dem Namen (z.B. „Maschine1“) gefunden habe, soll gleich in die Zelle darunter die Zahl 1 eingetragen werden. In die zweite Zeile darunter soll die Zahl 2 eingetragen werden. Das soll so lange fortgeführt werden, bis die vorletzte leere Zelle eine Zahl bekommen hat. Die letzte leere Zelle soll keine Zahl bekommen, denn sie ist nur eine Trennzeile.
Dazu seht ihr am besten meine Beispieldatei.
https://www.herber.de/bbs/user/110172.zip
Im Anschluss daran möchte ich dann die Zelle mit dem Namen „Maschine2“ suchen und die darunter folgenden Zellen wieder mit einer fortlaufenden Nummerierung versehen, also wieder 1, 2 usw..
Es kann sein, dass ein Name nicht mehr vorkommt, weil die Zelle vorher durch ein anderes Makro gelöscht wurde. Daher sollte der Code berücksichtigen, dass ein Name auch mal nicht gefunden werden könnte.
Natürlich habe ich vorher die Recherche bemüht bevor ich diesen Beitrag schreibe aber leider war zu diesem Problem nichts verwertbares zu finden.
Danke schön und Gruß
Erdoğan
PS: Feedback ist selbstverständlich.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namenssuche und darunter schreiben
22.12.2016 18:32:00
KlausF
Hallo Erdoğan,
zu nachfolgendem Code musst Du Dir noch 2 Überlegungen machen:
1. Wenn nicht klar ist wie viele Maschinen es gibt läuft der Code natürlich ins Unendliche,
da ja auch Namen nicht vorkommen können. Theoretisch kann es also auch eine Maschine10000 geben.
Ich habe hier im Code die maximale Anzahl auf Maschine100 gesetzt.
Das solltest Du großzügig anpassen falls mehr gebraucht werden.
2. Unter der letzten Maschine gibt es keinen "Stopper" für die fortlaufende Nummerierung. Die Nummerierung
würde also die Spalte bis zum Dateiende füllen und das dürfte kaum beabsichtigt sein. Im Moment
läuft die Nummerierung bis 100. Es würde schon eine Zelle mit einem Blanc genügen um die Nummerierung zu stoppen.
Sub Eintragen()
Dim strSearch As String
Dim rng As Range
Dim findRow As Long
Dim findCol As Integer
Dim i As Integer
Dim a As Integer
Application.ScreenUpdating = False
With ActiveSheet
For i = 1 To 100 'Code sucht bis Maschine100, evtl. anpassen
strSearch = "Maschine" & i
Set rng = .UsedRange.Find(What:=strSearch, _
Lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rng Is Nothing Then
findRow = rng.Row
findCol = rng.Column
For a = 1 To 100 'Nummerierung läuft maximal bis 100, anpassen
If IsEmpty(.Cells(findRow, findCol).Offset(a + 1, 0)) Then
.Cells(findRow + a, findCol) = a
Else
Exit For
End If
Next a
End If
Next i
Set rng = Nothing
End With
End Sub
Gruß
Klaus
Anzeige
AW: Namenssuche und darunter schreiben
22.12.2016 19:26:45
TCO99
Hallo Klaus,
herzlichen Dank für deine Hilfe!
Ich habe den Code integriert, er funktioniert einwandfrei. Aber ich habe gemerkt, dass ich mich nicht gut genug ausgedrückt habe.
Bei der Suche nach z.B. Maschine1 meinte ich nicht den Inhalt der Zelle, sondern den Namen, den man für die Zelle definieren kann, unabhängig von dessen Textinhalt. So habe ich in meinem Beispiel (ich lade ihn inkl. deines Codes hoch) den Text überall zu "Maschine" geändert. Die Unterscheidung liegt jetzt im Namen der Zelle, welche weiterhin „Maschine1“, „Maschine2“ usw. heißen. Bekommt man es hin, dass der Code nun nach dem Namen der Zelle und nicht nach dessen Textinhalt guckt?
https://www.herber.de/bbs/user/110175.zip
Und falls das nicht geht, wie müsste der Code lauten, wenn man doch nach dem Textinhalt schaut, um die Durchnummerierung durchzuführen, der Textinhalt aber immer „Maschine“ heißen würde?
Danke und Gruß
Erdoğan
Anzeige
Zusatzfragen
22.12.2016 21:24:40
KlausF
Hallo Erdoğan,
Zusatzfragen:
1. bezieht sich die Suche nur auf Spalte A oder im gesamten Blatt
2. wie sieht es mit dem "Stopper" unter dem letzten Suchwort aus,
bis wohin sollen die Nummerierungen unter dem letzten Wort laufen?
Gruß
Klaus
AW: Zusatzfragen
22.12.2016 22:04:13
TCO99
Hallo Klaus,
Frage 1: bezieht sich die Suche nur auf Spalte A oder im gesamten Blatt?
Genau, die Suche bezieht sich nur auf die Spalte A. Bei deinem Code ist es so, dass sich die Suche nicht nur auf eine einzige Spalte beschränkt, was mir aber gut gefällt: wenn ich nämlich die Spalte A freilassen wollen würde (aus optischen Gründen) und die Suchbegriffe stünden in der Spalte B, würde der Code trotzdem seine Aufgabe ausführen.
Frage 2: wie sieht es mit dem "Stopper" unter dem letzten Suchwort aus …?
Mit der Maximallänge-Lösung der Nummerierung (von dir mit 100 vorgewählt) bin ich sehr zufrieden.
Mir reicht bereits die Lösung, wenn der bisherige Code immer in der Spalte A gucken würde aber nicht nach „Maschine“ plus Zahl guckt, sondern nur nach dem Wort Maschine. Dafür entferne ich gleich alle Zahlenangaben nach dem Wort Maschine. Wie müsste dafür bitte der Code lauten?
Dank und Gruß
Erdoğan
Anzeige
neuer Code
22.12.2016 22:32:05
KlausF
Hallo Erdoğan,
das ist dann einfacher, die Suchspalte kannst Du nachträglich anpassen:
Sub Ellipse1_Klicken()
Dim i As Long
Dim a As Long
Dim strSearch As String
strSearch = "Maschine"
Dim strColumn As String
strColumn = "A" 'Suchspalte anpassen
Application.ScreenUpdating = False
With ActiveSheet
For i = 1 To .Cells(Rows.Count, strColumn).End(xlUp).Row
If .Cells(i, strColumn) = strSearch Then
For a = 1 To 50 'Nummerierung läuft maximal bis 50, anpassen
If IsEmpty(.Cells(i, strColumn).Offset(a + 1, 0)) Then
.Cells(i + a, strColumn) = a
Else
Exit For
End If
Next a
End If
Next i
End With
End Sub
Gruß
Klaus
Anzeige
AW: neuer Code
22.12.2016 22:42:37
TCO99
Hallo Klaus,
der neue Code macht genau das, was ich mir gewünscht habe und die enthaltenen Kommentare machen es sehr angenehm. Ich bedanke mich sehr sehr herzlich für deine Hilfe!
Viele Grüße
Erdoğan
Userbild
Danke für die Rückmeldung
22.12.2016 22:48:55
KlausF
Hallo Erdoğan,
gerne geschehen. Danke für die Rückmeldung!
So long
Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige