Anzeige
Archiv - Navigation
1636to1640
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

Fehler?

Fehler?
13.08.2018 14:49:11
Benjamin
Hallo,
Ich habe ein fehler in einem meiner MAcros, dabei ist es eine Kopie eines funktionierenden Macros, nur mit etwas veränderten Zahlen... aber am eigentlichen Code habe ich nichts verändert
funktionierendes Macro:
Sub SubM1_6Wells()
ActiveCell.Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-3]C)"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR((100*COUNTIF(R2C:R[-4]C,1))/COUNT(R2C:R[-4]C), 0)"
ActiveCell.Offset(0, 16).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR((100*SUM(R2C:R[-5]C))/(COUNTA(R2C:R[-5]C)*6), 0)"
ActiveCell.Offset(-1, -16).Range("A1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:AF1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:AF1").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:P1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P1").Select
ActiveCell.Offset(0, 16).Range("A1:A2").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:P2"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P2").Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=IFERROR(100*(R[-2]C/(R[-2]C[-16]*6)), 0)"
Selection.AutoFill Destination:=ActiveCell.Range("A1:P1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P1").Select
Sheets("TO-DO").Select
Range("C25:C27").Select
ActiveCell.FormulaR1C1 = "20"
Range("C28:C31").Select
MsgBox "Done"
End Sub

nicht funktionierendes Macro

Sub SubM1_8Wells()
ActiveCell.Select
ActiveCell.FormulaR1C1 = _
"=SUM(R2C:R[-3]C)"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR((100*COUNTIF(R2C:R[-4]C,1))/COUNT(R2C:R[-4]C), 0)"
ActiveCell.Offset(0, 16).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR((100*SUM(R2C:R[-5]C))/(COUNTA(R2C:R[-5]C)*8), 0)"
ActiveCell.Offset(-1, -16).Range("A1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:AF1"), Type:= _
xlFillDefault vom Debuger markiert
ActiveCell.Range("A1:AF1").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:P1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P1").Select
ActiveCell.Offset(0, 16).Range("A1:A2").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:P2"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P2").Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=IFERROR(100*(R[-2]C/(R[-2]C[-16]*8)), 0)"
Selection.AutoFill Destination:=ActiveCell.Range("A1:P1"), Type:= _
xlFillDefault
ActiveCell.Range("A1:P1").Select
Sheets("TO-DO").Select
Range("C25:C27").Select
ActiveCell.FormulaR1C1 = "20"
Range("C28:C31").Select
MsgBox "Done"
End Sub
- Benjamin
P.s. Danke im voraus für die Hilfe

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler?
13.08.2018 14:57:48
EtoPHG
Hallo Beniamin,
Activecell.Select ? Was soll das? Die aktive Zelle ist doch schon selektiert!
2 Select in 2 sich folgenden Codezeilen sind völlig überflüssig, da nur die 2. am Schluss selektiert ist.
Select kann in VBA zu 99.9% überflüssig, wenn nicht kontraproduktiv.
Lies dazu die Geschichte vom Malergesellen.
Auch wenn das deinen Fehler nicht behebt, überarbeite deinen Code. Stell dann eine Beispielmappe mit den Zielvorstellungen des Ablaufs ins Forum.
Gruess Hansueli
AW: Fehler?
13.08.2018 17:49:10
ChrisL
Hi Benjamin
Die Malergeschichte in Kurzform z.B.
irgendetwas.Select
ActiveCell.FormulaR1C1 ="=Formel"

umwandeln in z.B.
Range("A1").FormulaR1C1 ="=Formel"
Aber was ich eigentlich sagen wollte.
Der Code beginnt mit der zufälligerweise aktiven Zelle und geht dann z.B. 1 Zeile runter oder 16 Spalten nach rechts/links (Offset).
Das (Zufalls-)ergebnis ist somit abhängig von der Ausgangszelle. Der Hinweis von Hansueli ist darum in deinem Fall mehr als nur Kosmetik.
Ein stabiles Testergebnis würdest du bekommen, wenn du zu beginn vom Code immer die gleiche Zelle selektierst z.B.
Range("A1").Select
Für Anschlussfragen bitte eine Musterdatei laden (und wenn möglich den Code aufräumen).
cu
Chris
Anzeige
AW: Fehler?
14.08.2018 09:22:24
Benjamin
Hallo Chris,
Das mit dem "zufälligen" Startpunkt ist mir sehrwohl bewust.
Ich werde meinen Code nun etwas aufräumen...
- Benjamin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige