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

Find funltion

Find funltion
20.01.2023 08:28:39
John
Guten morgen zusammen,
ich versuche mir seit ein paar Wochen VBA Kenntnisse anzueignen.
Bisher hat auch alles gut geklappt. Aber nun versuche, seit mehreren Tagen eine "Prozedur" zu schreiben, bei der ich z.B. Werte aus Tabellenblatt 1/ Tabelle 1/Spalte 1
mit Werte aus Tabellenblatt2/ Tabelle2 / Spalte 1 vergleichen kann und entweder , wenn die Werte von Tabelle 1 in Tabelle 2 vorhanden sind, Tabellenblatt2/ Tabelle2 / Spalte 5+ Tabellenblatt 1/ Tabelle 1/Spalte 2 zu erhöhen oder Wenn der Wert nicht vorhanden ist diesen in einer neuen Zeile in Tabelle 2 zu erweitern.
Ich habe es bis jetzt mit einer " For Each Schleife" , "Find" und "If then else" verschachtelung versucht aber ich bekomme es nicht hin die Werte auf einen anderen
Tabellenblatt zu finden. Im I-net habe ich auch keine Informationen dazu gefunden wie ich das bewerkstelligen kann.
Ich weiß einfach nicht weiter.
vllt. kann mir ja hier jmd einen tip geben wie ich die "find funktion" so aufbaue damit ich werte auf einen anderen Tabellenblatt finden kann.
oder ob ein anderer weg vllt besser wäre.
Unten habe ich meinen letzten "teil" versuch angehängt. damit man sehen kann wie ich vor gehen wollte um mindestens erst mal die werte zu finden.
ohne die Werte zu kopieren oder erhöhen.
für eine kleine Hilfestellung wäre ich sehr dankbar und möchte mich im voraus bedanken.
mfg John

Sub Makro1()
Dim tble As ListObject
Dim tblb As ListObject
Dim Zelle As Range
neu.ListObjects(1).Name = "tblNeu"
alt.ListObjects(1).Name = "tblAlt"
Set Zelle = .Find(what:=Zelle, After:=Range("tblNeu[größe]"), LookIn:=xlValues)
For Each Zelle In Range("tblAlt[größe]")
    If Zelle Then
    MsgBox "ist da"
    
Debug.Print Zelle.Value
Next Zelle
'
End Sub
Danke nochmals


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find funltion
20.01.2023 10:09:54
UweD
Hallo
Da es nicht der komplette Code ist, ist das schwierig nachzuprüfen
&GT&GT wenn die Werte von Tabelle 1 in Tabelle 2 vorhanden sind
Da zu kannst du auch worksheetsfunction.countif(...) und .Match() benutzen
Besser wäre es eine Musterdatei hochzuladen.
LG UweD
AW: Find funltion
20.01.2023 10:28:46
Yal
Hallo John,
Du kannst nicht dieselbe Variable an 3 verschiedene Stellen verwenden, und hoffen, dass VBA richtig interpretiert was Du dabei meinst.
Wiederum sind andere Variable überflüssig, weil gar nicht verwendet.
Folgende Code finden jeweils nur den ersten Treffer, falls eins oder mehreren gibt.
Sub Makro1()
Dim Erg As Range
Dim Z As Range
    
    For Each Z In Range("tblAlt[größe]")
        Set Erg = Range("tblNeu[größe]").Find(what:=Z.Value,  LookIn:=xlValues)
        If Not Erg Is Nothing Then
'            MsgBox "ist da" 'lass lieber im Schritt-Modus laufen (sieh Menü "Debuggen")
            Debug.Print Z.Value, Z.Address, Erg.Value, Erg.Address
        End If
    Next Zelle
End Sub
VG
Yal
Anzeige
AW: Find funltion
20.01.2023 10:30:34
Daniel
HI
im Prinzip so (Code mit sicherheit so nicht lauffähig und muss angepasst werden, aber für dein Verständnis)
dim Zelle1 as range
dim Zelle2 as Range
for each Zelle1 in Range("tblAlt[Spalte1]")
    set Zelle2 = Range("tblNeu[Spalte1]").Find(what:=Zelle1.value, lookat:=xlwhole, lookin:=xlvalues)
    if Zelle2 is nothing then
        Zelle1.EntrieRow.Copy
        Sheets("Tabelle2").Cells(Rows.count, 1).End(xlup).Offset(1, 0).PasteSpecial xlpasteall
    else
        Zelle2.Offset(0, 5).Value = 'wie immer du hier was erhöhen willst.
    end if
Next
Gruß Daniel
Anzeige
AW: Find-Funktion etc.
20.01.2023 16:12:50
GerdL
'...........
Zelle1.EntireRow.Copy
'.............
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige