Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile zum überschreiben suchen

Forumthread: Zeile zum überschreiben suchen

Zeile zum überschreiben suchen
22.02.2024 09:52:10
stef26
Hallo liebe Excelprofis,
hätte eine kleine Anpassung meines Macros, wo ich eure Unterstützung gerne hätte.


Aktuell schreibe ich Daten in die nächste freie Stelle. Die Zeile suche ich mit:
i = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 1

Nun bräuchte ich eine kleine Anpassung:
Ich habe eine Variable f die den Dateinamen enthält. Dieser wird dann in die Spalte A geschrieben.
Bisher schreibt er mir das einfach in die nächste freie Stelle.

Nun soll jedoch zuvor überprüft werden, ob f bereits in der Spalte A enthalten ist.
Wenn ja dann soll er die brauch ich für i diese Zeilennummer, wenn nicht dann soll er wieder die nächste freie Zeile eintragen.

Wie suche ich nach f in der Spalte B, so dass ich die Zeilennummer für i bekomme?

Danke
Gruß
Stefan
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile zum überschreiben suchen
22.02.2024 10:03:24
MCO
Hallo Stefan!

f ist der Dateiname,
"Nun soll jedoch zuvor überprüft werden, ob f bereits in der Spalte A enthalten ist."

Deine Frage:
"Wie suche ich nach f in der Spalte B, so dass ich die Zeilennummer für i bekomme?"

Was denn jetzt?
Ich ab es jetzt auf Spalte B gesetzt, ggf. anpassen.
Korrigiert hab ich auch die Suche nach der letzten Zeile, hier muss es +1 heißen, nicht -1
Sub Suche_und_Eintrag()


Dim i As Range
Dim gefunden As Range
Dim f As String

f = "Deine Datei"
Set gefunden = Range("B:B").Find(what:=f, lookat:=xlWhole)

If Not gefunden Is Nothing Then
MsgBox "steht schoh in " & gefunden.Row, vbOKOnly + vbInformation
Else
Set i = Cells(Rows.Count, 1).End(xlUp).Row + 1 'korrigiert!
i.Value = f
End If
End Sub

Gruß, MCO
Anzeige
AW: Zeile zum überschreiben suchen
22.02.2024 10:15:47
Yal
Moin,

eine Ungenauigkeit entdeckt: wenn eine Variable als "Range" definiert ist, muss man einen Range-Objekt übergeben.

Sub Suche_und_Eintrag(strDateiName As String)

Dim ZielZelle As Range

Set ZielZelle = Range("B:B").Find(what:=strDateiName, lookat:=xlWhole)
If ZielZelle Is Nothing Then
Set ZielZelle = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) 'korrigiert!
ZielZelle.Value = strDateiName
Else
MsgBox "steht schon in " & ZielZelle.Row, vbOKOnly + vbInformation
End If
End Sub

Sub Test()
Suche_und_Eintrag "deine Datei"
End Sub


Ich habe ebenfalls den "If Not x .." in einem "If x .."umgedreht (reine persönliches Empfinden ;-)

VG
Yal

Anzeige
AW: Zeile zum überschreiben suchen
22.02.2024 10:21:47
MCO
Danke, Yal

Du hast völlig recht, kann passieren, wenn man nicht testet.
Schön auch der Aufruf mit Parameter, hoffentlich weiß der Fragesteller damit was anzufangen.

Gruß, MCO
AW: Zeile zum überschreiben suchen
22.02.2024 11:13:40
stef26
Dankeschön an alle Beteiligten.
Es funktioniert


Liebe Grüße
Stefan
AW: Zeile zum überschreiben suchen
22.02.2024 10:07:21
daniel
Hi
steht der Dateiname in Spalte A oder in Spalte B? Du bist dir da selbst nicht ganz einig.

aber egal.
am besten so:

dim rng as Range

set rng = Range("A:B").Find(what:=f, lookat:=xlwhole, lookin:=xlvalues)
if rng is nothing then set rng = Cells(Rows.Count, 1).end(xlup).Offset(1, 0)
i = rng.Row

damit ist i entweder die Zeilennummer, in der f steht, oder wenn f noch nirgendwo steht, die erste freie Zeile am Tabellenende.

Gruß Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige