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

VBA Fehler falls nicht gefunden

VBA Fehler falls nicht gefunden
11.03.2023 14:20:07
Thomas
Hallo,

ich möchte im Bereich D7:D5000 nach dem Begriff "Monat?" suchen, dann die Zelle auswählen lassen und daraufhin zuvor markierte Werte dort einfügen.
Funktioniert auch so ganz gut.
Sollten keine Werte in der Zwischenablage sein, gibt es eine Fehlermeldung.
Sollte das Feld "Monat?" nicht auffindbar sein (z.B. weil ein Filter aktiv ist), kann und soll natürlich nichts eingefügt werden.
Hierfür gelingt mir die Abfrage nicht.
Versuch 1 gelingt wie gesagt gut, nur für den Fall, dass "Monat?" nicht vorhanden ist, fehlt die Fehlermeldung.
Versuch 2 ist mit der Finden Funktion, allerdings gelingt es mir da nicht, die Zelle zu markieren und leider auch nicht die Fehlermeldung.
Vielleicht könnte mir jemand zur Lösung verhelfen. Mir qualmt schon der Kopf von VBA Tutorials und Recherche.

Versuch 1
Sub DatenEinfügen()
Dim zelle As Range
For Each zelle In ActiveSheet.Range("D7:D5000").Cells
  If zelle.Text = "Monat?" Then
    zelle.Activate
   
   Exit For
  End If
Next
On Error GoTo Fehlerverarbeitung2
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
Fehlerverarbeitung2:
    MsgBox "Keine Daten zum Kopieren ausgewählt, Vorbereitungsdatei öfnnen und Daten erneut kopieren, dann Vorgang wiederholen"
End Sub


Versuch 2
Sub ZahldatenReinkopieren()
Dim Suchwort As String
Dim Suchbereich As Range
Dim Monatszelle As Range
Suchwort = "Monat?"
Set Suchbereich = Range("D7", Range("D7").End(xlDown))
Set Monatszelle = Suchbereich.Find(What:="Monat?", MatchCase:=True, LookAt:=xlWhole)
    
    If Monatszelle Is Nothing Then
     MsgBox "Feld Monat? nicht vorhanden"
     
         
     
     Else
    
     Monatszelle.Activate
     
     
  End If
  
On Error GoTo Fehlerverarbeitung_für_fehlende_Daten
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
Fehlerverarbeitung_für_fehlende_Daten:
    MsgBox "Keine Daten zum Einfügen ausgewählt, Vorbereitungsdatei öfnnen und Daten erneut kopieren, dann diesen Vorgang wiederholen"
End Sub

Vielen Dank!
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler falls nicht gefunden
11.03.2023 14:51:12
Nepumuk
Hallo Thomas,
teste mal:
Public Sub DatenEinfügen()
    Dim zelle As Range
    On Error GoTo err_exit
    Set zelle = Range("D7:D5000").Find(What:="Monat?", _
        LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not zelle Is Nothing Then
        Call zelle.PasteSpecial(Paste:=xlPasteValues)
        Set zelle = Nothing
    Else
        Call MsgBox("Suchbegriff ''Monat?'' nicht gefunden.", vbExclamation, "Hinweis")
    End If
    Exit Sub
err_exit:
    Call MsgBox("Keine Daten zum Kopieren ausgewählt, Vorbereitungsdatei öfnnen und " & _
        "Daten erneut kopieren, dann Vorgang wiederholen", vbExclamation, "Hinweis")
End Sub
Gruß
Nepumuk
Anzeige
AW: VBA Fehler falls nicht gefunden
11.03.2023 15:58:12
Thomas
Also Du Schlawiner xD
Du wusstest wohl, wie toll das funktioniert!!
Das erste Lächeln des Tages huscht über mein Gesicht!
Vielen Dank dafür!
Ich hab noch die Winzigkeit des Auslassens der Leerzellen beim Einfügen geändert, weil dann die Formeln in den Zellen nicht überschrieben werden, aber das soll nur heißen, ich hab aufgepasst und versuche Deins zu verstehen!
Ich habe noch einen anderen kleinen Code.
Auch wenn das eine unfaire Anschlussfrage ist, verzeih mir bitte.
Anderes Tabellenblatt. Hier soll die erste leere Zeile von oben gefunden werden und dort in Spalte D dann zuvor kopierten Daten eingefügt werden.
Läuft wie ein alter Diesel: etwas klapprig :D
Also er findet die leere Zeile, ich glaube etwas umständlich.
Die richtige Zelle markiert er auch, fügt die Daten ein und dann löscht er noch Duplikate.
Als Abschluss bekomme ich dann noch die Fehlermeldung präsentiert, die ja eigentlich nur erscheinen soll, wenn es keine Daten zum Einfügen gibt.
Aus Deinem anderen Code hatte ich gleich versucht, Anpassungen zu übernehmen. Aber es gelingt trotzdem nicht.
Könntest Du bitte nochmal schauen, warum die Fehlermeldung kommt.
Und vielleicht, ob ich richtig nach der ersten leeren Zeile von oben suche.
Die drei Spalten, die er eigentlich dabei prüfen soll sind D,E und F. Aber das schaffe ich niemals :D
Option Explicit
Sub ZahlungsempfängerEinfügen()
    Dim lastrow As Integer
    On Error GoTo err_exit
    
    lastrow = Range("D1000").End(xlUp).Row + 1
       
    Cells(lastrow, 4).Select
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
      ActiveSheet.ListObjects("Zahlungsempfänger").DataBodyRange.RemoveDuplicates Columns:=Array(1, 6), _
Header:=xlYes
err_exit:
    Call MsgBox("Keine Daten zum Kopieren ausgewählt, Vorbereitungsdatei öffnen und " & _
        "Daten erneut kopieren, dann diesen Vorgang nochmal wiederholen", vbExclamation, "Hinweis")
    
    
End Sub
    
Vielen Dank nochmal!
Thomas
Anzeige
AW: VBA Fehler falls nicht gefunden
11.03.2023 16:35:26
Nepumuk
Hallo Thomas,
da fehlt nach:
ActiveSheet.ListObjects("Zahlungsempfänger").DataBodyRange....
ein Exit Sub
Gruß
Nepumuk
AW: VBA Fehler falls nicht gefunden
11.03.2023 17:29:23
Thomas
Ah - ich verstehe! Toll! :)
Vielen Dank für den Hinweis!
Ein schönes Wochenende noch für Dich!
Thomas
AW: VBA Fehler falls nicht gefunden
12.03.2023 11:54:51
snb
Warum nicht einfach ?
Sub M_snb()
   Sheet1.Range("D7:D5000").Replace "monat", Date
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige