Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA funktioniert mal und mal nicht

Forumthread: VBA funktioniert mal und mal nicht

VBA funktioniert mal und mal nicht
30.12.2005 18:36:03
drigi
Hallo
habe folgendes Makro erstellt und manches mal Probleme damit. So funktioniert es im Visual-Basic-Editor bei Ausführung der Einzelprozedur, aber nicht über eine Schaltfläche. Dann bleibt das Tabellenblatt Artikel leer. Zudem fehlt bei jedem Mal ausführen die erste Spalte ganz links bis keine Spalten mehr da sind.
Auch zerstört es meine Formeln in meinem anderen Tabellenblatt. Es steht dann da "Bezug". Ich lösche doch nur den Inhalt!?
Wer kann mir helfen. Sollten noch Fragen sein: Antwort kommt kurzfristig!
Danke für die Hilfe...

Sub Fertig()
Application.ScreenUpdating = False
Sheets("Artikel").Select
'Sheets("Artikel").Unprotect Password:="jd2210"
Dim wb1 As Workbook, wb2 As Workbook
Dim offen As Boolean, Datei1 As String, Datei2 As String
Dim Tab1 As String, Pfad As String
Datei1 = "Rechnung.xls" 'Dateiname für Rechnungs-Datei
Datei2 = "Bestellung2.xls" 'Dateiname der Bestell-Datei
Tab1 = "Artikel" 'Tabellenname der Artikeltabelle (ist in beiden Dateien gleich!)
Pfad = "E:\Office-Daten\Jocoda Deutschland" 'Verzeichnis der Rechnungsdatei
'Überprüfung ob Rechnungs-Datei geöffnet ist
offen = False
For Each Datei In Workbooks
If Datei.Name = Datei1 Then
offen = True
Exit For
End If
Next Datei
If offen = False Then
Workbooks.Open Filename:=Pfad & "\" & Datei1
Else
Workbooks(Datei1).Activate
End If
Set wb1 = Workbooks("Rechnung.xls")
Set wb2 = Workbooks("Bestellung2.xls")
'Löschen Inhalt Blatt Artikel in wb2
'Ausschalten der (lästigen?) Nachfrage, ob wirklich gelöscht werden soll
Application.DisplayAlerts = False
On Error Resume Next
wb2.Worksheets("Artikel").Cells.Select
Selection.ClearContents
Application.DisplayAlerts = True
'Kopieren des Inhaltes des Blattes Artikel von Rechnung
wb1.Worksheets("Artikel").Cells.Select
ActiveWindow.SmallScroll Down:=-3
Selection.Copy
'Einfügen des Inhaltes des Blattes Artikel von Rechnung nach Bestellung
wb2.Worksheets("Artikel").Range("A1").Select
ActiveSheet.Paste
Set wb1 = Nothing
Set wb2 = Nothing
'ggf. Rechnungs-Datei wieder schließen
If offen = False Then
Workbooks(Datei1).Close SaveChanges:=False
End If
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
ActiveWorkbook.Names("Artikel").Delete
Range("A1").Select
'Sheets("Artikel").Protect Password:="jd2210"
Application.ScreenUpdating = True
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA funktioniert mal und mal nicht
30.12.2005 20:00:38
Josef
Hallo ?
Probier mal so!
Sub Fertig()
Dim wb1 As Workbook, wb2 As Workbook
Dim offen As Boolean, Datei1 As String, Datei2 As String
Dim Pfad As String

On Error GoTo ErrExit

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlCalculationManual
  .DisplayAlerts = False
End With

Datei1 = "Rechnung.xls" 'Dateiname für Rechnungs-Datei
Datei2 = "Bestellung2.xls" 'Dateiname der Bestell-Datei
Pfad = "E:\Office-Daten\Jocoda Deutschland" 'Verzeichnis der Rechnungsdatei
'Überprüfung ob Rechnungs-Datei geöffnet ist
offen = False

For Each wb1 In Workbooks
  If wb1.Name = Datei1 Then
    offen = True
    Exit For
  End If
Next

If offen = False Then
  Set wb1 = Workbooks.Open(Filename:=Pfad & "\" & Datei1)
Else
  Set wb1 = Workbooks(Datei1)
End If

Set wb2 = Workbooks(Datei2)

'Löschen Inhalt Blatt Artikel in wb2
wb2.Worksheets("Artikel").Cells.ClearContents
'Kopieren des Inhaltes des Blattes Artikel von Rechnung
wb1.Worksheets("Artikel").Cells.Copy
'Einfügen des Inhaltes des Blattes Artikel von Rechnung nach Bestellung
wb2.Worksheets("Artikel").Range("A1").PasteSpecial xlPasteAll

Application.CutCopyMode = False

'ggf. Rechnungs-Datei wieder schließen

If offen = False Then
  wb1.Close SaveChanges:=False
End If

wb2.Names("Artikel").Delete

Set wb1 = Nothing
Set wb2 = Nothing

ErrExit:

If Err.Number > 0 Then MsgBox Err.Number & vbLf & Err.Description

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationManual
  .DisplayAlerts = True
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: VBA funktioniert mal und mal nicht
30.12.2005 20:19:16
drigi
Hallo Sepp,
folgende Zeile löst Fehler 1004 Anwendungs- oder objektdefinierter Fehler aus:
If Err.Number 0 Then MsgBox Err.Number & vbLf & Err.Description
Auch ist mein Formelfehler mit "Bezug" noch da.
Noch eine Ahnung was da schief läuft?
AW: VBA funktioniert mal und mal nicht
30.12.2005 22:32:46
Josef
Hallo ?
es muss ja auch

If Err.Number > 0 Then MsgBox Err.Number & vbLf & Err.Description

heissen!
Hier nochmal der Code, im anderen war beim letzten "With Application" ein Fehler!
Wie sehen den die Formeln aus, die nacher #BEZUG darstellen!
' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Fertig()
Dim wb1 As Workbook, wb2 As Workbook
Dim offen As Boolean, Datei1 As String, Datei2 As String
Dim Pfad As String

On Error GoTo ErrExit

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlCalculationManual
  .DisplayAlerts = False
End With

Datei1 = "Rechnung.xls" 'Dateiname für Rechnungs-Datei
Datei2 = "Bestellung2.xls" 'Dateiname der Bestell-Datei
Pfad = "E:\Office-Daten\Jocoda Deutschland" 'Verzeichnis der Rechnungsdatei
'Überprüfung ob Rechnungs-Datei geöffnet ist
offen = False

For Each wb1 In Workbooks
  If wb1.Name = Datei1 Then
    offen = True
    Exit For
  End If
Next

If offen = False Then
  Set wb1 = Workbooks.Open(Filename:=Pfad & "\" & Datei1)
Else
  Set wb1 = Workbooks(Datei1)
End If

Set wb2 = Workbooks(Datei2)

'Löschen Inhalt Blatt Artikel in wb2
wb2.Worksheets("Artikel").Cells.ClearContents
'Kopieren des Inhaltes des Blattes Artikel von Rechnung
wb1.Worksheets("Artikel").Cells.Copy
'Einfügen des Inhaltes des Blattes Artikel von Rechnung nach Bestellung
wb2.Worksheets("Artikel").Range("A1").PasteSpecial xlAll

Application.CutCopyMode = False

'ggf. Rechnungs-Datei wieder schließen

If offen = False Then
  wb1.Close SaveChanges:=False
End If

On Error Resume Next
wb2.Names("Artikel").Delete
On Error GoTo ErrExit

Set wb1 = Nothing
Set wb2 = Nothing

ErrExit:

If Err.Number > 0 Then MsgBox Err.Number & vbLf & Err.Description

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
  .DisplayAlerts = True
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: VBA funktioniert mal und mal nicht
31.12.2005 08:29:32
drigi
Hallo Sepp,
ich bedanke mich für Deine Hilfe. War schon ratlos. Wie hast Du es hinbekommen, dass die Formeln nicht zerstört werden (hauen jetzt nämlich hin!)?
Ich bedanke mich und wünsche ein guten Rutsch in das neue Jahr.
Drigi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige