Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellenformeln in VBA einfügen
#1
Hallo zusammen,
folgendes macht mein Code. Letzte leere Zeile in Sheet 1 ("Data") suchen, den Wert der Variable nAbt in Spalte 1 schreiben, den Wert auch in Sheet(2) in die erste freie Zeile in der ersten Spalte schreiben, den Diagramm Bereich vergrößern. Was soll es dann tun?

In der gleichen Zeilen in die Spalten 2, 3 und 4 die Werte schreiben, welche ich im Code als Kommentar gesetzt habe. Wie sieht die Syntax korrekt aus?
Danke.

Gruß



Code:
Private Sub CommandButton2_Click()
Dim nAbt As String
lindex = 2
    Do While Trim(CStr(Sheets(1).Cells(lindex, 1).Value)) <> ""
        lindex = lindex + 1
    Loop
    nAbt = Application.InputBox("Geben Sie ___ ein!")
    Sheets(1).Cells(lindex, 1) = nAbt

lindex = 2
Do Until Sheets(2).Cells(lindex, 1).Value = ""
    lindex = lindex + 1
Loop   
Sheets(2).Cells(lindex, 1).Value = nAbt
Sheets(2).ChartObjects("Diagramm 2").Activate
ActiveChart.SetSourceData Source:=Range("'Chart(s)'!A2:B" & lindex)
    
'Sheets(2).Cells(lindex, 3).Value = "=SUMMEWENN(Data!A:A;nAbt;Data!AA:AA)"
    
'Sheets(2).Cells(lindex, 4).Value = "=SUMMEWENN(Data!A:A;nAbt;Data!AB:AB)"
    
'Sheets(2).Cells(lindex, 2).Value = Sheets(2).Cells(lindex, 4).Value / Sheets(2).Cells(lindex, 3).Value

End Sub
Antworten Top
#2
Hallo Fupi,
Sheets(2).Cells(lindex, 3).Formula = "=SUMIF(Data!A:A," & nAbt & ",Data!AA:AA)"
   
Sheets(2).Cells(lindex, 4).Formula = "=SUMIF(Data!A:A," & nAbt & ",Data!AB:AB)"
   
Sheets(2).Cells(lindex, 2).Value = Sheets(2).Cells(lindex, 4).Value / Sheets(2).Cells(lindex, 3).Value
Gruß Uwe
Antworten Top
#3
Danke Uwe,
habe leider immernoch 2 Probleme hiermit.

1. Die Variable nAbt im Sheet(1) ist als Text definiert und beginnt für gewöhnlich mit einer 0 (001, 002, 003). In der Formel wird daraus 1, 2 bzw. 3. Die Ganze Spalte als Text formatieren geht aber auch nicht, sonst wird die Formel ja nicht berechnet. Lässt sich das umgehen?

2. Damit zusammenhängend ist zu Beginn der Wert, durch den dividiert wird 0, da anstelle des Wertes "001" nach nAbt ohne Anführungszeichen gesucht wird. Nehme an daher kommt der Laufzeitfehler 6: Überlauf für die Zeile
Code:
Sheets(2).Cells(lindex, 2).Value = Sheets(2).Cells(lindex, 4).Value / Sheets(2).Cells(lindex, 3).Value

Beide Probleme sollten ja behoben werden durch das Einfügen von Anführungszeichen zum Suchen von "001" statt "1" mithilfe von

Code:
Sheets(2).Cells(lindex, 3).Formula = "=SUMIF(Data!A:A," & " & nAbt & " & ",Data!AA:AA)"

Geht aber leider nicht, nehme an habe irgendwo die Syntax mit zu vielen oder eher noch zu wenigen " und & versehen. 

Gruß
Antworten Top
#4
Hallo Fupi,

dann so:
Sheets(2).Cells(lindex, 3).Formula = "=SUMIF(Data!A:A,""" & nAbt & """,Data!AA:AA)"
Gruß Uwe
Antworten Top
#5
Vielen vielen Dank!! :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste