Microsoft Excel

Herbers Excel/VBA-Archiv

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

Excel stürzt am Ende des Makros ab

Betrifft: Excel stürzt am Ende des Makros ab von: Endi
Geschrieben am: 19.10.2014 11:49:02

Hallo zusammen,

ich hoffe auf eure Hilfe.

Mein Makro, dass alle Funktionen richtig ausführt, jedoch jedesmal am Ende, also wirklich erst mit End Sub, abstürzt und die Meldung bringt." Excel funktiniert nicht mehr . . . "
Das gesamte Projekt besteht aus vielen keinen Modulen, die jeweils kleinere Programmschritte enthalten und über "call" aufgerufen werden.
Es handelt sich um eine Kundendatei, die aus zwei Tabellenblättern besteht, 1. Startmaske zur Eingabe des Kundennamens und 2. Kundenliste, in der die Kunden chronologisch aufgelistet werden. Wird ein neuer Kunde angelegt, startet über das Makro eine neue Excel-Mappe, ein Blanko für neuen Kunden, der Name wird übernommen und mit dem Kundennamen als eigene Excel-Mappe unter dem Namen des Kunden gespeichert und zusätzlich in die Chronologie der Kundendatei (2. Tabellenblatt der Startdatei) aufgenommen. Jetzt können noch weitere ergänzende Daten im neuangelegten Kundenblatt ausgefüllt werden.
Alle Funktionen, auch die im Blanko oder im Kundenblatt, werden über das Makro der ersten Arbeitsmappe (Kundendatei) ausgeführt.
Jedoch immer, wenn die Eingabe mit Blanko unter neuem Namen (Kundenname) mit Speichern abgeschlossen wird, was auch "Liste ergänzen", "Kundenblatt schließen", "zur Startseite zurückkehren" oder "Blanko für weiteren neuen Kunden öffnen" beinhaltet, stürzt Excel ab.

Ich habe schon aufgrund ähnlicher Fälle nach unsauberen Programmschritten gesucht, Zellbezeichnungen abgeglichen etc. komme aber nicht weiter.

Viele Grüße
Endi

  

Betrifft: AW: Excel stürzt am Ende des Makros ab von: {Boris}
Geschrieben am: 19.10.2014 12:39:31

Hi Endi'

Ohne deinen Code zu kennen nicht beantwortbar.

VG Boris


  

Betrifft: AW: Excel stürzt am Ende des Makros ab von: Endi
Geschrieben am: 19.10.2014 13:47:28

Hi Boris,

ich wollte nur nicht gleich mit der Tür ins Haus fallen.

Hier ist mein Code

Sub KundenSpeichern_WeitererKunde()
'Speicherung des Kunden, Eintrag in Kundenliste, Datei schließen,Blanko neu öffnen

'Application.ScreenUpdating = False
Dim Pfad As Variant, Datei As Variant
Pfad = Range("B1")
Datei = Range("D1")
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            Call Weiter                         'KU4_Weiter
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
MsgBox "Ende"
End Sub

Sub Weiter()

'Kundenblatt einrichten und speichern


Dim Speicherort As Variant, Datei As Variant
Datei = Range("D1")
Speicherort = Range("C1")


ActiveSheet.Unprotect ("#")
ActiveSheet.Shapes("Blende1").Visible = False
ActiveSheet.Shapes("Suchfunktion").Visible = False
ActiveSheet.Shapes("Weiter").Visible = True
ActiveSheet.Shapes("DatenÄndern").Visible = False

ActiveSheet.Shapes("KdSpeichernWeiter").Visible = True
ActiveSheet.Shapes("Weiter").Visible = True

Range("F1") = "Kundenblatt"  'Als Kundenblatt indizieren
ActiveSheet.Protect ("#")
Stop
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'        Call Sicherungskopie 'Legt eine Sicherungskopie an und kehrt herher zurück
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Speicherort
Application.DisplayAlerts = True
Stop
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        Call KundenlisteErgänzen 'Modul Kundeliste aufrufen und dort Kunden eintragen
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

' Datei schließen, Blanko erneut für weitere Einträge öffnen.

Workbooks(Datei).Activate
ActiveWorkbook.Save
ActiveWorkbook.Close

Application.Wait (Now + TimeValue("00:00:3"))

 Workbooks.Open Filename:="C:\Kundendatei\BlankoFormular\BlankoMaren.xlsm"
 
End Sub

Sub KundenlisteErgänzen()

  
    
'Wechsel zum Tabellenblatt Kundenliste in der  _
Startdatei___________________________________________________________________________

Dim Datei As Variant
Datei = Range("D1")
Windows("Kundendatei.xlsm").Activate

Sheets("Kundenliste").Visible = True                        'Kundenliste aufrufen
Sheets("Kundenliste").Select

ActiveSheet.Unprotect "#"
Application.CutCopyMode = False

 If ActiveSheet.FilterMode = True Then 'Klärung ob Autofilter schon gesetzt, dann löschen
    ActiveSheet.ShowAllData                                                              '       _
    eventuell Filtermodus löschen
    
   ActiveSheet.Protect "#", DrawingObjects:=True, Contents:=True, Scenarios:=True
   ActiveSheet.EnableSelection = xlNoRestrictions
End If

'Übernahme der Adressdaten aus der neuangelegten  _
Kundendatei__________________________________________________________________________________________

'Datei des Kunden aktivieren

Workbooks(Datei).Activate
 Range("C8:C12").Select
 Selection.Copy
        
                
Workbooks("Kundendatei.xlsm").Sheets("Kundenliste").Activate        'Kundenliste für Neueintrag  _
positionieren

'ActiveSheet.ShowAllData

 Range("A5").Select                                                                              _
    'Unterste Zeile suchen
     Cells.Find(What:=Range("A1"), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
                xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
                False, SearchFormat:=False).Activate
                
                ActiveCell.Offset(1, 1).Select
    ActiveSheet.Unprotect "#"
 Stop
                   
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
        
 Application.CutCopyMode = False
      

    ActiveCell.Offset(0, -1).Range("A1:G1").Select          'Zeile markieren und Linie ziehen
         With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        
    End With
    
    ActiveCell.Offset(0, 6).Range("A1") = Range("G1")       'Datum eintragen
    
    ActiveCell.Offset(0, 0) = Range("A1") + 1                                                 ' _
Lfd Nr für Neukunden hochzählen
    Range("A1") = ActiveCell                                                                     _
    'und Suchparameter in Zelle A1anpassen
    ActiveCell.Offset(0, 0).Select                                                               _
     'Aktive Zelle an den Rand neben letzem Eintrag positionieren

    Application.CutCopyMode = False                         'Kopie aktivierte Zellen  _
deaktivieren

Sheets("Startseite").Select
Sheets("Kundenliste").Visible = False

Stop
'Über Modul: Ku4_Weiter zum Blanko zurück >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
If Workbooks(Datei).Sheets("Behandlung").Range("F1") = "Kundenblatt" Then Exit Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Stop
Range("C8:C9").Select                                                     'Startseite leeren
    Selection.ClearContents
    Range("C8").Select
    
    
End Sub



  

Betrifft: AW: Excel stürzt am Ende des Makros ab von: fcs
Geschrieben am: 19.10.2014 12:42:15

Hallo Endi,

trotz deiner ausführlichen Problembeschreibung ist es schwierig eine Lösung vorzuschlagen.
Wie außert sich der Absturz?
- Excel - Fenster friert ein mit Anzeige "Keine Rückmeldung" im Fensternamen?
- Excel wird einfach geschlossen?
- Excel wird beendet - Excel versucht aber noch Daten zu retten?

Was passiert den wenn du in den zuletzt aufgerufenen Subs Haltepunkte setzt und mit F8 schrittweise den Code ausführst? Schmiert Excel dann tatsächlich mit der Ausführung der letzten End Sub Anweisung ab? Oder schafft Excel es nicht hinter die zugehörige Call-Anweisung zurückzuspringen?

Ohne Kenntnis der Problemmakros kann man da nicht weiter helfen.

Gruß
Franz


  

Betrifft: AW: Excel stürzt am Ende des Makros ab von: Endi
Geschrieben am: 19.10.2014 14:14:24

Hallo Franz

danke auch für deine Reaktion.

Ich habe den Code mittlerweile eingestellt.
Excel friert nicht ein, sondern es kommt "..versucht Daten zu retten und
öffnet die gesicherten Versionen.

Es ist so, dass kein Absurz erfolgt, wenn ich kurz vor Ende mit F8 den letzten Schritt mache.
Das war mir vor meinem Blog noch nicht aufgefallen und muss mit den vorherigen
Änderungen zusammen hängen. Denn vorher kam der Absturz in jedem Fall.

Gruß Endi


  

Betrifft: Zeigst Du uns noch Deinen Code? von: {Boris}
Geschrieben am: 20.10.2014 21:17:28

Hi Endi,

...denn falls nicht, ist die Frage nicht mehr offen, da OHNE Kenntnis des Codes keine konkrete Hilfe möglich ist.

VG, Boris


  

Betrifft: AW: Zeigst Du uns noch Deinen Code? von: Endi
Geschrieben am: 20.10.2014 22:52:32

Hi Boris,

ich habe den Code doch direkt nach deiner Antwort eingestellt. ?!?
Ist da was schief gelaufen?

also noch mal

Mein Code

Sub KundenSpeichern_WeitererKunde()
'Speicherung des Kunden, Eintrag in Kundenliste, Datei schließen,Blanko neu öffnen

'Application.ScreenUpdating = False
Dim Pfad As Variant, Datei As Variant
Pfad = Range("B1")
Datei = Range("D1")
'Stop

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
            Call Weiter                         'KU4_Weiter
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

MsgBox "Ende"

End Sub

Sub Weiter()

'Kundenblatt einrichten und speichern


Dim Speicherort As Variant, Datei As Variant
Datei = Range("D1")
Speicherort = Range("C1")


ActiveSheet.Unprotect ("#")
ActiveSheet.Shapes("Blende1").Visible = False
ActiveSheet.Shapes("Suchfunktion").Visible = False
ActiveSheet.Shapes("Weiter").Visible = True
ActiveSheet.Shapes("DatenÄndern").Visible = False

ActiveSheet.Shapes("KdSpeichernWeiter").Visible = True
ActiveSheet.Shapes("Weiter").Visible = True

Range("F1") = "Kundenblatt"  'Als Kundenblatt indizieren
ActiveSheet.Protect ("#")
Stop
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'        Call Sicherungskopie 'Legt eine Sicherungskopie an und kehrt hierher zurück
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Speicherort
Application.DisplayAlerts = True
Stop
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        Call KundenlisteErgänzen 'Modul Kundeliste aufrufen und dort Kunden eintragen
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


' Datei schließen, Blanko erneut für weitere Einträge öffnen.

Workbooks(Datei).Activate
ActiveWorkbook.Save
ActiveWorkbook.Close

Application.Wait (Now + TimeValue("00:00:3"))

 Workbooks.Open Filename:="C:\Kundendatei\BlankoFormular\BlankoMaren.xlsm"
 
 End Sub
Sub KundenlisteErgänzen()

  
'Kundenblatt(Blanko) noch aktiv
'Wechsel zum Tabellenblatt Kundenliste in der  _
Startdatei___________________________________________________________________________

Dim Datei As Variant
Datei = Range("D1")


Windows("Kundendatei.xlsm").Activate

Sheets("Kundenliste").Visible = True                        'Kundenliste aufrufen
Sheets("Kundenliste").Select

ActiveSheet.Unprotect "#"
Application.CutCopyMode = False

 If ActiveSheet.FilterMode = True Then 'Klärung ob Autofilter schon gesetzt, dann löschen
    ActiveSheet.ShowAllData             'eventuell Filtermodus löschen
    
   ActiveSheet.Protect "#", DrawingObjects:=True, Contents:=True, Scenarios:=True
   ActiveSheet.EnableSelection = xlNoRestrictions
End If

'Übernahme der Adressdaten aus der neuangelegten  _
Kundendatei__________________________________________________________________________________________

'Datei des Kunden aktivieren

Workbooks(Datei).Activate
 Range("C8:C12").Select
 Selection.Copy
        
                
Workbooks("Kundendatei.xlsm").Sheets("Kundenliste").Activate        'Kundenliste für Neueintrag  _
positionieren

'ActiveSheet.ShowAllData

 Range("A5").Select                                                                    ' _
Unterste Zeile suchen
     Cells.Find(What:=Range("A1"), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
                xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
                False, SearchFormat:=False).Activate
                
                ActiveCell.Offset(1, 1).Select
    ActiveSheet.Unprotect "#"
 Stop
                   
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
        
 Application.CutCopyMode = False
        
      
    ActiveCell.Offset(0, -1).Range("A1:G1").Select          'Zeile markieren und Linie ziehen
         With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        
    End With
    
    ActiveCell.Offset(0, 6).Range("A1") = Range("G1")       'Datum eintragen
    
    ActiveCell.Offset(0, 0) = Range("A1") + 1               'Lfd Nr für Neukunden hochzählen
    Range("A1") = ActiveCell                                'und Suchparameter in Zelle  _
A1anpassen
    ActiveCell.Offset(0, 0).Select                          'Aktive Zelle an den Rand neben  _
letzem Eintrag positionieren

    Application.CutCopyMode = False                         'Kopie aktivierte Zellen  _
deaktivieren



Sheets("Startseite").Select
Sheets("Kundenliste").Visible = False

Stop
'Über Modul: Ku4_Weiter zum Blanko zurück >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
If Workbooks(Datei).Sheets("Behandlung").Range("F1") = "Kundenblatt" Then Exit Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Stop
Range("C8:C9").Select                                        'Startseite leeren
    Selection.ClearContents
    Range("C8").Select
    
    'Call SpeichernSchließen

End Sub



  

Betrifft: Mea maxima culpa... von: {Boris}
Geschrieben am: 20.10.2014 23:08:38

Hi Endi,

...hatte ich komplett übersehen... :-//
Wozu stehen denn die Stop-Anweisungen im Code?

VG, Boris


  

Betrifft: AW: Mea maxima culpa... von: Endi
Geschrieben am: 21.10.2014 09:25:57

Hi Boris,

die sind noch vom Erstellen des Codes. Ich prüfe zwischendrin dann immer ob das Makro macht
was ich geplant hatte. Deaktiviere ich immer, wenn ich dann fertig bin oder die Stelle im Code
geprüft ist.

Ps. Ich habe nur einen Teil der Module von insgesamt ~ 10 eingestellt, nämlich nur die, die bei Ausführung der Funktion beteiligt sind. Ich hoffe die anderen haben dann keinen Einfluss auf den Excelabsturz, weil sie ja nicht aufgerufen werden oder täusche ich mich da?

VG
Endi


  

Betrifft: AW: Mea maxima culpa... von: {Boris}
Geschrieben am: 21.10.2014 09:29:40

Hi Endi,

ich denke, dass man das nur beurteilen kann, wenn man die komplette Mappe mit dem kompletten Code hat.

Ich lass aber nochmal offen.

VG, Boris


  

Betrifft: AW: Mea maxima culpa... von: Endi
Geschrieben am: 21.10.2014 09:35:27

Hi Boris,

wäre ja kein Problem, ich wollte nur nicht zu viel einstellen.
Was meinst du mit, ich lass noch mal offen.
Soll ich die komplette Mappe hochladen? Das könnte ich dann heute Abend.
VG
Endi


  

Betrifft: AW: Mea maxima culpa... von: fcs
Geschrieben am: 21.10.2014 11:45:40

Hi Endi,

ich hab mir deine Makros auch noch einmal angesehen.
In der Theorie ist das schwierig nachzuvollziehen, da hier viele Activate- und Select-Anweisungen enthalten sind.

Insgesamt scheinen ja 3 oder 4 Dateien in den gesamten Ablauf involviert zu sein.
- Eine Datei mit Userform und Makros
- eine Kundendatei (= aktive Datei zu Beginn des Makrostarts?)
- C:\Kundendatei\BlankoFormular\BlankoMaren.xlsm
- Kundendatei.xlsm

Hast du denn inzwischen herausgefunden, bis zu welcher Code-Zeile die Makros funktionieren, indem du nacheinander die Stop-Zeilen deaktivierst?

Meine Vermutung ist, dass durch das Speichern der Datei unter einem neuen Namen irgendetwas nicht korrekt aktualsiert wird, so dass der Verweis auf den Dateinamen falsch ist. Im F8-Shrittmodus stimmt es dann zufällig.

Ich empfehle hier mit Objektvariablen für die betreffenden Arbeitsmappen zu arbeiten. Das ist einfacher in der Handhabung, als mit den Namen der Mappen zu arbeiten.

Nachfolgend mal ein erster Ansatz, der aber noch viel Spielraum für Optimierung hat, insbesondere was die Selektion von Zellen im Code angeht.

Gruß
Franz

Sub KundenSpeichern_WeitererKunde()
   'Speicherung des Kunden, Eintrag in Kundenliste, Datei schließen,Blanko neu öffnen
   
   'Application.ScreenUpdating = False
   Dim Pfad As Variant, Datei As Variant
   Pfad = Range("B1")
   Datei = Range("D1")
   'Stop
   
   '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
               Call Weiter                         'KU4_Weiter
   '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
   
   MsgBox "Ende"
   
   End Sub


Sub Weiter()
   
   'Kundenblatt einrichten und speichern
   
   
   Dim Speicherort As Variant, Datei As Variant
   Dim wkbDatei As Workbook, wkbKunde As Workbook
   Datei = Range("D1")
   Speicherort = Range("C1")
   
   Set wkbDatei = Application.Workbooks(Range("D1"))
   Set wkbKunde = ActiveWorkbook
   
   With ActiveSheet
      .Unprotect ("#")
      .Shapes("Blende1").Visible = False
      .Shapes("Suchfunktion").Visible = False
      .Shapes("Weiter").Visible = True
      .Shapes("DatenÄndern").Visible = False
   
      .Shapes("KdSpeichernWeiter").Visible = True
      .Shapes("Weiter").Visible = True
   
      .Range("F1") = "Kundenblatt"  'Als Kundenblatt indizieren
      .Protect ("#")
   End With
   Stop
   '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   '        Call Sicherungskopie 'Legt eine Sicherungskopie an und kehrt hierher zurück
   '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
   Application.DisplayAlerts = False
   wkbKunde.SaveAs Speicherort
   Application.DisplayAlerts = True
   Stop
   '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
           Call KundenlisteErgänzen 'Modul Kundeliste aufrufen und dort Kunden eintragen
   '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
   
   
   ' Datei schließen, Blanko erneut für weitere Einträge öffnen.
   
   wkbDatei.Activate
   wkbDatei.Save
   wkbDatei.Close
   
   Application.Wait (Now + TimeValue("00:00:3"))
   
    Workbooks.Open Filename:="C:\Kundendatei\BlankoFormular\BlankoMaren.xlsm"
    
End Sub

Sub KundenlisteErgänzen()
   
     
   'Kundenblatt(Blanko) noch aktiv
   'Wechsel zum Tabellenblatt Kundenliste in der _
   Startdatei___________________________________________________________________________
   
   Dim Datei As Variant
   Dim wkbKunde As Workbook, wkbKundendatei As Workbook
   Datei = Range("D1")
   Set wkbKunde = Application.Workbooks(Range("D1"))
   
   Set wkbKundendatei = Application.Workbooks("Kundendatei.xlsm")
   wkbKundendatei.Activate
   
   With wkbKundendatei.Sheets("Kundenliste")
      .Visible = True                        'Kundenliste aufrufen
      .Select
   
      .Unprotect "#"
        Application.CutCopyMode = False
   
      If .FilterMode = True Then 'Klärung ob Autofilter schon gesetzt, dann löschen
         .ShowAllData             'eventuell Filtermodus löschen
         
        .Protect "#", DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlNoRestrictions
      End If
   End With
   'Übernahme der Adressdaten aus der neuangelegten _
    _
Kundendatei__________________________________________________________________________________________
   
   'Datei des Kunden aktivieren
   
   wkbKunde.Activate
   Range("C8:C12").Select
   Selection.Copy
           
                   
   With wkbKundendatei.Sheets("Kundenliste")
        .Activate        'Kundenliste für Neueintragpositionieren
   
   'ActiveSheet.ShowAllData
   
        .Range("A5").Select   ' Unterste Zeile suchen
        .Cells.Find(What:=.Range("A1"), After:=ActiveCell, LookIn:=xlValues, _
              LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
              MatchCase:=False, SearchFormat:=False).Activate
                   
        ActiveCell.Offset(1, 1).Select
        .Unprotect "#"
      Stop
   End With
       Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
           :=False, Transpose:=True
           
    Application.CutCopyMode = False
           
         
       ActiveCell.Offset(0, -1).Range("A1:G1").Select          'Zeile markieren und Linie  _
ziehen
       With Selection.Borders(xlEdgeBottom)
           .LineStyle = xlContinuous
           
       End With
       
       ActiveCell.Offset(0, 6).Range("A1") = Range("G1")       'Datum eintragen
       
       ActiveCell.Offset(0, 0) = Range("A1") + 1               'Lfd Nr für Neukunden hochzählen
       Range("A1") = ActiveCell                                'und Suchparameter in Zelle _
   A1 anpassen
       ActiveCell.Offset(0, 0).Select                          'Aktive Zelle an den Rand neben  _
_
   letzem Eintrag positionieren
   
       Application.CutCopyMode = False                         'Kopie aktivierte Zellen _
   deaktivieren
   
   Sheets("Startseite").Select
   Sheets("Kundenliste").Visible = False
   
   Stop
   'Über Modul: Ku4_Weiter zum Blanko zurück >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   If wkbKunde.Sheets("Behandlung").Range("F1") = "Kundenblatt" Then Exit Sub
   '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   
   Stop
   Range("C8:C9").Select                                        'Startseite leeren
       Selection.ClearContents
       Range("C8").Select
       
       'Call SpeichernSchließen
   
End Sub



  

Betrifft: AW: Mea maxima culpa... von: Endi
Geschrieben am: 21.10.2014 13:12:02

Hallo Franz,

danke für deine Nachricht.
Deine Vorschläge kann ich leider erst am Abend umsetzen. Aber es ist definitiv so, dass Excel erst mit dem letzten "End SUB" abschmiert. Ich habe deshalb vor dem Ende die msg-Box zur Kontrolle. Bis dahin läuft alles, egal ob über F8 oder auch beim Komplettdurchlauf, richtig ab. Es wirde alles richtig in den Modulen abgearbeitet, Dateneinträge, Kopieren, Öffnen und Schließen des Blankos, der neu erstellten Kundendatei, Löschen der Eingabefelder etc. Nur mit "End Sub" kommt dann der Absturz.

Vielen Dank
Endi


  

Betrifft: AW: Mea maxima culpa... von: Endi
Geschrieben am: 22.10.2014 16:19:32

Hallo zusammen,

Habe jetzt meinen Code auf einem anderen Rechner laufen lassen, ohne bisher etwas geändert zu haben,
. . er funktioniert ohne Absturz. Nur zuhause funktioniert er nicht. ? ?

VG
Endi


  

Betrifft: AW: Mea maxima culpa... von: ulrich.endrass
Geschrieben am: 25.10.2014 11:03:26

Hallo zusammen,.

bin leider die ganze Woche nicht dazu gekommen , deshalb melde ich mich erst jetzt.

Ich habe festgestellt, dass das Makro unter Excel 2010 ohne Probleme läuft nicht aber unter 2007.
Geschrieben habe ich die Makros allerdings auf beiden Rechnern, also 2010 und 2007, je nachdem wo ich gearde war.

Laufen soll das Makro aber am Ende auf einem PC mit 2007.

VG
Endi


 

Beiträge aus den Excel-Beispielen zum Thema "Excel stürzt am Ende des Makros ab"