Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

166 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige