berechnete Daten in ein ExcelSheet schreiben

maybebaby

Mitglied
nun komm ich zum letzten schritt meines programmes was leider auch mal wieder nicht so funktioniert wie es funktionieren sollte.

ich möchte nun die daten die ich berechnet habe in das nächste excel sheet schreiben.
so sieht mein code aus:

With ActiveSheet
For xRows = 4 To 33
'Anzahl Zeilen
s = 3
For xCols = 3 To 14 'Anzahl Spalten

sWert = .Cells(xRows, xCols)

Application.Workbooks("Resourcenplanung_Bereich2.xls").Activate
ActiveWorkbook.Sheets("Resourcenplanung").Activate
ActiveSheet.Range("E12") = a




'MsgBox ("sWert: " & sWert)

If sWert = "P1" Then

'MsgBox ("ifzweig P1")
Spalte = (s + 2)
'MsgBox ("spalte: " & Spalte)
Zeile = z
temp1 = .Cells(Zeile, Spalte).Value
a = a + temp1

End If


s = s + 1
Next xCols
z = z + 1
Next xRows

MsgBox ("ergebnis lautet nach dem ersten Monat: " & a)


der rote teil meines codes funktioniert nicht weil ich ja dann das sheet verlasse in dem ich berechnen muss, dabei will ich ja nur jedes ergebnis in das 2te sheet eintragen und dann wieder den nächsten wert berechnen, eintragen, nächster wert berechnen usw...
ausserdem muss das eintragen auch flexibel mit z und s passieren weil ich ja meherere werte eintragen muss die logischerweise verschiedene zellen brauchen.

ich hoff echt dass ihr mir helfen könnt... hab schon ne ganze menge gelernt hier... ich hoff dass ich auch demnächst mal helfen kann ..

danke !!
 
Hallo,

Du brauchst das aktive Tabellenblatt nicht zu verlassen, um in ein Anderes zu schreiben oder anders formuliert, brauchst Du jenes Tabellenblatt, in das Du schreiben möchtest, nicht zwangsläufig aktivieren.

Einfach Tabellenblatt und Zelle angeben und losschreiben :)

Leider gibst Du nicht genau an, in welches sheet geschrieben werden soll - mal in's Nächste - mal in's Zweite. Wenn der Name bekannt ist, kann man es ja explicit angeben:
Visual Basic:
Sheets("Ressourcenplanung").Range("E12") = a

In's Zweite:
Visual Basic:
Sheets(2).Range("E12") = a

In's Nächste:
Visual Basic:
Sheets(ActiveSheet.Index + 1).Range("E12") = a

Gruß
 
Hallo,

also die Berechnung führe ich in dem Sheet Resourcenplanung durch und die Ergebnisse schreibe ich in das Sheet Woche.

Wie kann ich es dynamisch gestalten, also in dem Sheet Woche die Zellen durchlaufen ?

Code:
Sheets("Woche").Range("Zeile, Spalte") = a



Zeile, Spalte funktioniert leider nicht ... ich kann ja nicht starr E12 reinschreiben weil dann würde er ja mit jedem neuen Ergebnis die Spalte überschreiben... Deshalb muss ich ja in dem Sheet Woche auch weiter wandern...

Danke schonmal für den bisherigen Tip jetzt weiss ich immerhin wie ich in das nächste blatt komm :)

ich hoff du kannst mir nochmal helfen... daaanke
 
Nimm statt Sheets().Range() eher Sheets().Cells(zeile, spalte) dann kannst Du auch mit zeile & spalte arbeiten. Mann kann es natürlich auch mit Range() dynamisch gestalten, ist aber deutlich umständlicher. Range() wird in der Regel benötigt, wenn nicht einzelne Zellen, sonder Zellbereiche angesprochen werden sollen.

Nimm' mal das Leerzeichen aus dem vb-tag ;)
 
Kann ich mit

Visual Basic:
sheets.add

ein blatt einfügen und dem auch irgendwie einen namen geben ?

also einfügen klappt meine frage is ob ich dem auch einen namen geben kann dass ich es dann wie bereits geklärt ansprechen kann
 
Hall maybebaby,

Mit dem Namen geben geht es so:

Code:
   Set ws = wb.Worksheets(1)
   ws.Name = "Neues Sheet"

Grüsse
ronaldh
 
Zurück