Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Makro läuft nicht immer vollständig durch
23.07.2014 19:46:49 elTobi
NotSolved

Ansicht des Beitrags:
Von:
elTobi
Datum:
23.07.2014 19:46:49
Views:
2114
Rating: Antwort:
  Ja
Thema:
VBA Makro läuft nicht immer vollständig durch
Hallo zusammen,
 
ich habe ein kleines Problem mit Excel.
 
Vorgeschichte:
Und zwar habe ich eine Tabelle mit vielen Auswertungen zu einem Fragebogen. Um die Befragten zu segmentieren, habe ich ein paar Filter eingebaut. Diese Filter sind VBA Makros, die über einen Button Spalten ausblenden (Spalten = Befragte / Zeilen = Fragen und Antworten).
Nun habe ich ab der letzten Spalte noch Berechnungen gemacht. Die Funktion ZählenWennSichtbar (ebenfalls VBA Makro: Public Function), zählt z.B. wie viele der segmentierten Befragten auf eine Frage mit Ja = 1 und Nein = 0 oder gar nicht = "" geantwortet haben. Mit ZählenWenn() wäre das ja nicht möglich gewesen, weil da alle Spalten, d.h. auch ausgeblendete Spalten mit einbezogen werden und ich natürlich nur die eingeblendeten Spalten berücksichtigen möchte. Nachteil von ZählenWennSichtbar() ist, dass sich diese Werte nicht automatisch berechnen, wenn ich Spalten ausblende oder wieder einblende.
Aus diesem Grund habe ich mir ein VBA geschrieben, die die Formeln (auch wieder mit Klick auf einen Button) in die jeweiligen Zellen einfügt. Dadurch aktualisieren sich alle Werte durch Klick auf den Button.
 
Nun zum Problem:
Hin und wieder, wenn wenige Spalten ausgeblendet oder wenn alle Spalten eingeblendet werden, und ich die Neuberechnung über den Button starte, läuft das VBA Makro nicht vollständig durch. Ein paar SPalten habe ich Werte, aber in den meisten steht dann #WERT!.
Wenn ich viele Spalten ausblende, funktioniert die Neuberechnung einwandfrei und man sieht auch wie Excel ca. 2 Sekunden arbeitet :)
 
Kann mir bitte jemand weiterhelfen? Woran liegt das, dass manchmal das Makro nicht vollständig durchläuft und so nicht alle Werte neu berechnet werden, sondern #WERT! in den Zellen steht?
 
Hier das VBA Makro zur Neuberechnung, bzw. zum Schreiben der Formeln in eine Zelle. Gefühlt bricht das Makro bei Zeile 6, also Range("AQ41:AQ346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; 1)" ab. Eine Fehlermeldung bekomme ich jedoch nicht.
 
Public Sub AddFormel()
'Formeln einfügen
Range("AP2").FormulaLocal = "=ZählenWennSichtbar($E2:$AM2; """")"
Range("AO7:AO39").FormulaLocal = "=ZählenWennSichtbar($E7:$AM7; 1)"
Range("AS7:AS39").FormulaLocal = "=ZählenWennSichtbar($E7:$AM7; """")"
Range("AQ41:AQ346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; 1)"
Range("AS41:AS346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; 2)"
Range("AU41:AU346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; 3)"
Range("AW41:AW346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; 4)"
Range("AY41:AY346").FormulaLocal = "=ZählenWennSichtbar($E41:$AM41; """")"

'Zellen-Inhalte entfernen
Range("AO16:BB16").ClearContents
Range("AO22:BB23").ClearContents
Range("AO42:BB42").ClearContents
Range("AO75:BB75").ClearContents

'Header 1 kopieren und einfügen
Range("AO6:BB6").Copy
Range("AO23:BB23").PasteSpecial Paste:=xlPasteValues
Range("AO33:BB33").PasteSpecial Paste:=xlPasteValues
Range("AO37:BB37").PasteSpecial Paste:=xlPasteValues

'Header 2 kopieren und einfügen
Range("AO40:BB40").Copy
Range("AO60:BB60").PasteSpecial Paste:=xlPasteValues
Range("AO71:BB71").PasteSpecial Paste:=xlPasteValues
Range("AO76:BB76").PasteSpecial Paste:=xlPasteValues
Range("AO94:BB94").PasteSpecial Paste:=xlPasteValues
Range("AO112:BB112").PasteSpecial Paste:=xlPasteValues
Range("AO130:BB130").PasteSpecial Paste:=xlPasteValues
Range("AO148:BB148").PasteSpecial Paste:=xlPasteValues
Range("AO166:BB166").PasteSpecial Paste:=xlPasteValues
Range("AO184:BB184").PasteSpecial Paste:=xlPasteValues
Range("AO202:BB202").PasteSpecial Paste:=xlPasteValues
Range("AO220:BB220").PasteSpecial Paste:=xlPasteValues
Range("AO238:BB238").PasteSpecial Paste:=xlPasteValues
Range("AO256:BB256").PasteSpecial Paste:=xlPasteValues
Range("AO274:BB274").PasteSpecial Paste:=xlPasteValues
Range("AO292:BB292").PasteSpecial Paste:=xlPasteValues
Range("AO310:BB310").PasteSpecial Paste:=xlPasteValues
Range("AO329:BB329").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
 
 
Vielen, vielen Dank schonmal im Voraus für eure Hilfe!
 
Beste Grüße
Tobi

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Makro läuft nicht immer vollständig durch
23.07.2014 19:46:49 elTobi
NotSolved