Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige