Office: (Office 2013) VBA Fehler, Hilfe

Helfe beim Thema VBA Fehler, Hilfe in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo alle zusammen :) Ich habe ein Makro konzipiert was nicht richtig läuft. Könnte mir jemand bei der Fehlersuche helfen? Folgendes soll das Makro... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Lindaa, 8. Mai 2015.

  1. Lindaa Erfahrener User

    VBA Fehler, Hilfe


    Hallo alle zusammen :)

    Ich habe ein Makro konzipiert was nicht richtig läuft. Könnte mir jemand bei der Fehlersuche helfen?
    Folgendes soll das Makro eigentlich auslösen:
    Öffnen der ersten Excel Datei, kopieren der belegten Zellen und in Arbeitsdatei einfügen. Danach öffnen der zweiten Excel-Datei, kopieren der belegten Zellen und dann in die nächste freie Zeile der Arbeitsdatei einfügen.

    Option Explicit

    Dim Stamm As String
    Dim varFile As Variant
    Dim varName As Variant
    Dim zeil As Integer, spalt As Integer
    Dim z As Integer, s As Integer
    Dim I As Long
    Dim lngLetzte1 As Long
    Dim lngLetzte2 As Long
    Dim arrSpalten
    Dim rngSpalte1 As Range
    Dim rngSpalte2 As Range
    Dim bytZaehler As Byte
    Dim Blatt As String


    Public Sub Leistungsnachweis()

    arrSpalten = Array("Datum", "Aufwand", "Vorgang")

    For bytZaehler = 0 To UBound(arrSpalten)

    On Error GoTo Err
    Stamm = ActiveWorkbook.Name
    varFile = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "XLSX", "Auswahl", False)

    If TypeName(varFile) Like "Boolean" Then
    MsgBox "Keine Datei gewählt!", vbInformation
    Exit Sub
    Else
    varName = Right$(varFile, Len(varFile) - InStrRev(varFile, "\"))
    Set lngLetzte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
    SearchDirection:=xlPrevious).Row
    Set lngLetzte2 = Workbooks(varName).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
    SearchDirection:=xlPrevious).Row
    Set rngSpalte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Rows(1).Find(arrSpalten(bytZaehler), lookat:=xlWhole)
    rngSpalte2 = Workbooks(varName).Sheets("Ist-Aufwand1").Rows(1).Find(arrSpalten(bytZaehler), lookat:=xlWhole)

    Workbooks.Open varFile
    Workbooks(varName).Sheets("Ist-Aufwand1").Range(Cells(1, rngSpalte2.Column), Cells(lngLetzte2, rngSpalte2.Column)).Copy
    Workbooks(Stamm).Sheets("Ist-Aufwand1").Range(Cells(1, rngSpalte1.Column), Cells(lngLetzte1, rngSpalte1.Column)).PasteSpecial xlPasteValues
    Workbooks(varName).Close
    Application.CutCopyMode = False

    End If
    Exit Sub
    Next bytZaehler

    For bytZaehler = 0 To UBound(arrSpalten)

    On Error GoTo Err
    Stamm = ActiveWorkbook.Name
    varFile = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "XLSX", "Auswahl", False)
    If TypeName(varFile) Like "Boolean" Then
    MsgBox "Keine Datei gewählt!", vbInformation
    Exit Sub
    Else
    varName = Right$(varFile, Len(varFile) - InStrRev(varFile, "\"))
    Set lngLetzte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
    SearchDirection:=xlPrevious).Row
    Set lngLetzte2 = Workbooks(varName).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
    SearchDirection:=xlPrevious).Row
    Set rngSpalte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Rows(1).Find(arrSpalten(bytZaehler), lookat:=xlWhole)
    Set rngSpalte2 = Workbooks(varName).Sheets("Ist-Aufwand1").Rows(1).Find(arrSpalten(bytZaehler), lookat:=xlWhole)

    Workbooks.Open varFile
    Workbooks(varName).Sheets("Ist-Aufwand1").Range(Cells(1, rngSpalte2.Column), Cells(lngLetzte2, rngSpalte2.Column)).Copy
    Workbooks(Stamm).Sheets("Ist-Aufwand1").Range(Cells(1, rngSpalte1.Column), Cells(lngLetzte1, rngSpalte1.Column)).PasteSpecial xlPasteValues
    Workbooks(varName).Close
    Application.CutCopyMode = False

    End If

    Next bytZaehler

    I = Cells(Rows.Count, 2).End(xlUp).Row
    Range("B1:B" & I).Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

    Exit Sub

    Err:
    Call MsgBox("Bitte überprüfen ob die Tabellen" _
    & vbCrLf & "LN und Ist-Aufwand vorhanden sind!" _
    , vbExclamation, "Fehler")


    End Sub


    Danke schonmal!
     
    Zuletzt bearbeitet: 8. Mai 2015
    Lindaa, 8. Mai 2015
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Linda,

    was verstehst du unter "läuft nicht richtig"? Wird ein Laufzeitfehler ausgelöst und wenn ja in welcher Zeile und was sagt der Debugger genau? Oder macht das Makro nur nicht das was du willst?
    Was ich schon mal sehe ist, dass die Teile mit Set lngLetzte1 und Set lngLetzte2 falsch sind: du hast die Variablen als Long deklariert, dann kanst du sie nicht mit Set zuweisen - entweder du lässt das Set weg und weist den Wert so zu

    Code:
    lngLetzte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
         SearchDirection:=xlPrevious).Row
    oder du deklarierst sie als Range und ermittelst sie so

    Code:
    Set rngLetzte1 = Workbooks(Stamm).Sheets("Ist-Aufwand1").Cells.Find(What:="*", SearchOrder:=xlByRows, _
         SearchDirection:=xlPrevious)
    lngLetzte1 = rngLetzte.Row

    Also im Prinzip genau so wie für rngSpalte.

    Bis später,
    Karin
     
    Beverly, 8. Mai 2015
    #2
  3. Lindaa Erfahrener User
    Hallo Karin,

    vielen Dank für den Hinweis! Hab ich korrigiert.

    Das Makro zeigt keinen Fehler an, es wirft aber immer meine Error-Nachricht aus nachdem ich die erste Datei geöffnet habe.
     
    Lindaa, 27. Mai 2015
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA Fehler, Hilfe

    Hi Linda,

    dann kommentiere doch mal die Zeile On Error GoTo Err aus - dann siehst du, in welcher Zeile der Code tatsächlich einen Fehler findet.

    Fehlerbehandlungen mit On Error sollte man sich ganz genau überlegen und tatsächlich nur dann einsetzen, wenn es keine andere Möglichkeit gibt. In allen anderen Fällen sollte man stattdessen eine ordentliche Fehlerbehandlung verwenden - wie die ausssieht, hängt aber ganz vom Code ab und was er machen soll.

    Bis später,
    Karin
     
    Beverly, 27. Mai 2015
    #4
Thema:

VBA Fehler, Hilfe

Die Seite wird geladen...
  1. VBA Fehler, Hilfe - Similar Threads - VBA Fehler Hilfe

  2. Kreuztabelle / VBA / Fehler behandlung

    in Microsoft Access Hilfe
    Kreuztabelle / VBA / Fehler behandlung: Hallo alle zusamen Ich habe vor Jahren programiert und hade vieles vergessen. Ich habe Problemme mit ein Kreuztabelle Ich stelle ein Tabelle für quartal rechnung. Aber wenn der Quartal noch nict...
  3. VBA Stapelspeicher Fehler

    in Microsoft Excel Hilfe
    VBA Stapelspeicher Fehler: Hi, ich möchte gern die Funktion DateSerial verwenden. Leider bekomme ich den Stapelspeicher Fehler. Könnte mir da bitte jemand mir helfen? Function DateSerial() Worksheets("2023").Activate Dim...
  4. VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change)

    in Microsoft Excel Hilfe
    VBA - Fehler beim Kompilieren (Mehrdeutiger Name - Worksheet_Change): Hallo, ich komm leider nicht weiter. Habe 2 Makros die einzeln super Funktionieren, aber leider nicht zusammen. Vielleicht kann jemand helfen. Danke. Option Explicit Sub Datum() Private Sub...
  5. Makro Problem nach Wörtern filtern und Zeilen löschen

    in Microsoft Excel Hilfe
    Makro Problem nach Wörtern filtern und Zeilen löschen: Hallo zusammen! Ich habe ein Makro, dass ich erweitern möchte. Dabei soll in den Daten in der ersten Zeile ein Filter aktiviert werden und alle Datenzeilen löschen, die in Spalte 10 eines von 4...
  6. Fehler beim übertragen einer funktionierenden VBA

    in Microsoft Excel Hilfe
    Fehler beim übertragen einer funktionierenden VBA: Hallo Ich habe von der Homepage von Beverly die Datei mit Makro geladen (mehrere Zellen Zoomen), und wollte sie in meiner Beispieldatei einarbeiten. Ich habe die Liste als Namen definiert und die...
  7. Warum Fehler beim Kompilieren (VBA)???

    in Microsoft Excel Hilfe
    Warum Fehler beim Kompilieren (VBA)???: Hallo meine Lieben, ich bin, was VBA angeht, kein Profi und daher schier am durchdrehen. (Darf die Mappe aus datenschutzrechtlichen Gründen nicht online stellen, sorry) Folgendes: Modul 1:...
  8. VBA Fehler auf 1 von 3 Rechnern

    in Microsoft Access Hilfe
    VBA Fehler auf 1 von 3 Rechnern: Hallo, vielleicht kann mir jemand weiterhelfen, ich stehe vor einem Problem dessen Ursache sich mir absolut nicht erschließt. Der folgende VBA Code deklariert die Variablen und befüllt diese...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden