Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

In 2 Dateien suchen und Funde in Zellen schreiben


Betrifft: In 2 Dateien suchen und Funde in Zellen schreiben von: Sabrina
Geschrieben am: 12.07.2018 21:57:13

Hallo in der Datei Werte.xls wird in der 4.Spalte nach der Gerätenummer (lngZahl)
gesucht und von den Funden der Wert aus der Ersten Spalte in die Datei Eingabe in Z1, Z2 .... geschrieben.
Mit dem Makro funktioniert das Wunderbar. Nun soll aber zuerst in der Datei Werte2.xls nach dem gleichen gesucht werden.
Und die Funde aus beiden Dateien geschrieben werden.

Ich habe With wksWerte2 ... vor With wksWerte eingefügt.
Aber dann kommt die Fehlermeldung im 2. With bei "arr(lngCounter, 1) = .Cells(lngRow, 1)" Außerhalb des Güligen Bereiches.

Kann mir jemand helfen?

LG Sabbel

        lngZahl = Range("Geraetenummer")
        If lngZahl > 0 Then
            On Error Resume Next
            Set wksWerte = Workbooks("Werte.xls").Sheets("Daten")
			Set wksWerte2 = Workbooks("Werte2.xls").Sheets("Daten")
            On Error GoTo 0
            If wksWerte Is Nothing Then
              Set wksWerte = Workbooks.Open(ThisWorkbook.Path & "\Werte.xls").Sheets("Daten")
            End If
			If wksWerte2 Is Nothing Then
              Set wksWerte2 = Workbooks.Open(ThisWorkbook.Path & "\Werte2.xls").Sheets("Daten")
            End If
              With wksWerte
              lngCount = Application.CountIf(.Columns(4), lngZahl)
              If lngCount = 0 Then
                MsgBox lngZahl & " nicht vorhanden.", vbOKOnly, "Gebe bekannt..."
              Else
                ReDim arr(1 To lngCount, 1 To 1)
                For lngRow = 1 To .Cells(Rows.Count, 4).End(xlUp).Row
                  If .Cells(lngRow, 4) = lngZahl Then
                    lngCounter = lngCounter + 1
                    arr(lngCounter, 1) = .Cells(lngRow, 1)
                  End If
                Next
              End If
            End With
            With wksEingabe4
              .Columns(26).ClearContents
              .Cells(1, 26).Resize(lngCount) = arr
            End With
          End If

  

Betrifft: AW: In 2 Dateien suchen und Funde in Zellen schreiben von: Barbaraa
Geschrieben am: 12.07.2018 22:45:37

Hi Sabbel,

"Ich habe With wksWerte2 ... vor With wksWerte eingefügt. "
und wieder gelöscht, bevor Du den Code hier her geschoben hast?

Oder ist das im Code davor, und Du willst ihn uns nicht zeigen?
Da könnte vielleicht schon mal lngCounter verwendet worden sein und ist jetzt in der Problemzeile
ReDim arr(1 To lngCount, 1 To 1)
nicht mehr im gültigen Bereich.

Ohne Beispieldatei ist das ist das wie Null-Sicht-Tauchen, denn man kann nicht überprüfen, ob die Variablen und das was drin steht Ursache des Fehlers sind.

LGB


  

Betrifft: AW: In 2 Dateien suchen und Funde in Zellen schreiben von: Sabrina
Geschrieben am: 12.07.2018 23:05:26

Huhu .. sorry.

Ich habe eine Test Datei hochgeladen.
https://www.herber.de/bbs/user/122644.zip

Alle 3 Dateien öffnen, Bei Eingabe.xls auf Start klicken.

LG

Sabbel


  

Betrifft: AW: In 2 Dateien suchen und Funde in Zellen schreiben von: fcs
Geschrieben am: 13.07.2018 01:02:01

Hallo Sabrina,

der Fehler tritt auf weil du den Zähler lngCounter nicht auf 0 zurückgesetzt hast.
Aber das löst nicht alle Probleme, da du so nur die Werte aus der 1. Datei ins Array bekommst.

Du musst hier erst die Gesamt-Anzahl Treffer für die gesuchte Zahl in beiden Tabellenblättern ermitteln und dann das Array dimensionierten.

Danach kannst du dann die Treffer in den Tabellenblättern suchen und ins Array schreiben.

Textdatei mit angepasstem Makro:
https://www.herber.de/bbs/user/122647.txt

Ich hab auch die Zeile
On Error Resume Next
verschoben. So funktioniert das Makro auch, wenn die beiden Werte-Dateien nicht geöffnet sind.
Die beiden Werte-Dateien müssen wie in dem Code angegben aber im gleichen Verzeichnis gespeichert sein wie die Datei mit dem Makro.

Gruß
Franz


Beiträge aus dem Excel-Forum zum Thema "In 2 Dateien suchen und Funde in Zellen schreiben"