Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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 Codeausführung unterbrechen/fortsetzen

VBA Codeausführung unterbrechen/fortsetzen
23.09.2016 10:39:48
Hannes
Guten Tag,
vielen Dank für alle Tips und Tricks die ich bisher als "Leser" dem Forum entnommen habe :)
Mein erster Beitrag, mein erstes Problem:
Ich habe einen VBA Code erstellt der die manuell gefilterten Daten von Solaranlagen (aus einer Liste mit 22.000 zeilen) in ein anderes Tabellenblatt überträgt und dort einiges mit bereits hinterlegten Formeln berechnet.
Vor dem kopieren der Daten erfolgt eine Abfrage ob eine Anlage manuell selektiert wurde oder nicht, bei "nein" wird das macro abgebrochen. Anschließend werden die Daten in ein Diagramm übertragen und auf einem weiteren Tabellenblatt dargestellt.Ebenfalls in diesem Diagramm sind fix hinterlegte Daten des Jahresdurchschnitts der jeweiligen Region, mit welchem die Anlage verglichen werden soll.
In diesem Diagramm sind auf der X-Achse Jahreszahlen von 2009-2015, und auf der Y-Achse die Leistungsfähigkeit in kWh/kWp.
Soviel zur "Basis".
Nun mein Problem:
Ich möchte die Anlage die in das Diagramm eingefügt wird nicht zwingend mit den fix hinterlegten Werten vergleichen, sondern mit einer anderen Anlage:
Das Macro hierfür soll Folgende Schritte durchlaufen:
Abfrage "wurde Anlage selektiert" - Nein Abbruch, Ja - Anlage in Berechnungsblatt kopieren - Abfrage "soll zweite Anlage selektiert werden" - Nein weiter mit Diagramm erstellen/ Ja - macro stoppt, Benutzer kann zweite Anlage selektieren, dann macro wiederaufnehmen und zweite Anlage in Berechnungsblatt - Weiter mit Diagramm erstellen
Vielen Dank schonmal, ich bin wirklich ein VBA Neuling, und habe mir nur Brocken davon ohne professionelle Hilfe in Form eines Lehrgangs oder ähnlichem angeeignet.

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Codeausführung unterbrechen/fortsetzen
25.09.2016 18:29:30
fcs
Hallo Hannes,
du kannst deine Abfragen wie folgt strukturieren.
Dabei wird dann das Makro nicht abgebrochen, sondern es nach einer Zelle/Zeile gefragt, die per Maus ausgewählt wird, in der die Infos zur 2. Anlage gefunden werden können.
Ob das so funktionieren kann hängt auch davon ab, wie die Daten in deiner Arbeitsmappe enthalten sind.
Gruß
Franz
Sub Auswertung()
Dim varBox As Variant
Dim Zeile As Long
On Error GoTo Fehler
varBox = MsgBox("Wurde eine Anlage selektiert?", vbQuestion + vbYesNo, "Erstellen  _
Vergleichsdiagramm")
If varBox = vbNo Then
MsgBox "Diagrammerstellung wurde abgebrochen"
Exit Sub
End If
'hier dein Code für das kopieren der Daten für die slektierte Alage in das Berechnungsblatt
varBox = MsgBox("Soll zweite Anlage selektiert werden?", vbQuestion + vbYesNo, "Erstellen  _
Vergleichsdiagramm")
If varBox = vbYes Then
'wechseln zum Blatt für die Selektion der 2. Anlage
Sheets("Anlagen").Activate
'Inputbox zur Auswahl der 2. Anlage
Set varBox = Application.InputBox("Bitte Zelle in Zeile mit der zweite Anlage  _
selektieren?", _
"2. Anlage auswählen - Erstellen Vergleichsdiagramm", Type:=8)
If IsObject(varBox) Then
Dim WertFix1, WertFix2
Zeile = varBox.Row
MsgBox "Es wird mit der Anlage in Zeile " & Zeile & " verglichen" 'Testzeile
'Daten zur 2. Anlage ins Diagramm übertragen
WertFix1 = Cells(Zeile, 1) 'ANlage
WertFix2 = Cells(Zeile, 2) 'was weiß ich
Else
MsgBox "Diagrammerstellung wurde abgebrochen"
Exit Sub 'Abbrechen wurde gewählt
End If
Else
MsgBox "Es wird mit Fixwerten verglichen" 'Testzeile
'Fixwerte verwenden - ggf. Fixwerte eintragen für Diagramm
End If
'  Weiter mit Diagramm erstellen
'Am Ende des Makros
Fehler:
With Err
Select Case .Number
Case 0 'alles ok
Case 13 'Typfehler bei Zellauswahl, da abgebrochen wurde
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
VBA Codeausführung unterbrechen - Korrektur
25.09.2016 18:33:44
fcs
Hallo hannes,
bei der 1. Antwort sind mir ein paar Zeilenumbrüche reingeraten.
Gruß
Franz
Sub Auswertung()
Dim varBox As Variant
Dim Zeile As Long
On Error GoTo Fehler
varBox = MsgBox("Wurde eine Anlage selektiert?", vbQuestion + vbYesNo, _
"Erstellen Vergleichsdiagramm")
If varBox = vbNo Then
MsgBox "Diagrammerstellung wurde abgebrochen"
Exit Sub
End If
'hier dein Code für das kopieren der Daten für die slektierte Alage in das Berechnungsblatt
varBox = MsgBox("Soll zweite Anlage selektiert werden?", vbQuestion + vbYesNo, _
"Erstellen Vergleichsdiagramm")
If varBox = vbYes Then
'wechseln zum Blatt für die Selektion der 2. Anlage
Sheets("Anlagen").Activate
'Inputbox zur Auswahl der 2. Anlage
Set varBox = Application.InputBox( _
"Bitte Zelle in Zeile mit der zweite Anlage selektieren?", _
"2. Anlage auswählen - Erstellen Vergleichsdiagramm", Type:=8)
If IsObject(varBox) Then
Dim WertFix1, WertFix2
Zeile = varBox.Row
MsgBox "Es wird mit der Anlage in Zeile " & Zeile & " verglichen" 'Testzeile
'Daten zur 2. Anlage ins Diagramm übertragen
WertFix1 = Cells(Zeile, 1) 'ANlage
WertFix2 = Cells(Zeile, 2) 'was weiß ich
Else
MsgBox "Diagrammerstellung wurde abgebrochen"
Exit Sub 'Abbrechen wurde gewählt
End If
Else
MsgBox "Es wird mit Fixwerten verglichen" 'Testzeile
'Fixwerte verwenden - ggf. Fixwerte eintragen für Diagramm
End If
'  Weiter mit Diagramm erstellen
'Am Ende des Makros
Fehler:
With Err
Select Case .Number
Case 0 'alles ok
Case 13 'Typfehler bei Zellauswahl, da abgebrochen wurde
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: VBA Codeausführung unterbrechen - Korrektur
26.09.2016 07:43:52
Hannes
Guten Morgen Franz,
evtl. habe ich mich nicht klar genug ausgedrückt, verzeihung.
Die zu filternden Daten stehen beide male in der selben Tabelle.
Das macro müsste also praktisch Daten der ersten anlage in das diagramm kopieren, anschließend alle filter löschen und abwarten bis der Benutzer eine zweite Anlage per Hand selektiert, anschließend auch das wieder kopieren und dannach die filter löschen.
AW: VBA Codeausführung unterbrechen - Korrektur
26.09.2016 20:30:30
fcs
Hallo Hannes,
bei diesem Ablauf kommt man dann esser zurecht, wenn man das Ganze über ein Userform steuert, dessen Eigenschaft "ShowModal" auf Falsch/False gesetzt ist. Dann "schwebt" das Userform solange über der Excel-Tabelle bis es geschlossen wird (manuell oder vom Makro. Man kann zwischen Befehlen, die man im Userform startet in den Tabellenblättern arbeiten.
Hier eine kleine Beispieldatei.
https://www.herber.de/bbs/user/108422.xlsm
Die Module "Modul_Diagramm" und "UF_Diagramm" kannst du per Drag&Drop in deine Datei kopieren.
Die Makros zum kopieren der gefilterten Daten und der fixen Referenzwerte musst du entsprechend umbauen bzw. deine schon vorhadenen Makros einbauen/verwenden.
Gruß
Franz
Anzeige
AW: VBA Codeausführung unterbrechen - Korrektur
27.09.2016 07:24:12
Hannes
Guten Morgen,
vielen Dank für diesen Tipp :)
Ich habe mich zwar mit Userformen noch nicht näher beschäftigt, aber ich werde das mal ausprobieren sobald ich am rechner bin :)

10 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige