Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code in Code integrieren

Code in Code integrieren
04.07.2007 09:12:00
Thomas
Hallo,
hab noch ein kleines Problem mit einem Code den ich in einen anderen integrieren möchte und hoffe es kann mir jemand helfen.
Das ist der erste Code den ich geschrieben habe und der aus welchen Gründen auch immer funktioniert, habe nämlich gar keine Ahnung von VBA.

Private Sub CommandButton2_Click()
Dim inta As Integer
Set frm = UserForm2
Sheets("Tabelle1").Activate
With frm
Cells(223, 1).Value = .TextBox1.Value
Cells(223, 2).Value = .TextBox2.Value
Cells(223, 3).Value = .TextBox3.Value
Cells(214, 2).Value = .TextBox4.Value
End With
Sheets("Kosten nach Gewerken").Visible = True
Sheets("Kosten nach Gewerken").Select
For Each TextBox In UserForm2.Controls
If TextBox = "" Then
MsgBox "Es sind ein oder mehrere Felder nicht ausgefüllt!", vbOKOnly + vbCritical, " _
Eingabefehler"
Exit Sub
ElseIf TextBox = "0" Then
MsgBox "Nette Idee aber leider NEIN, denn durch 0 kann man nicht teilen!", vbOKOnly +  _
vbCritical, "Eingabefehler"
Exit Sub
End If
Next TextBox
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select
If Cells(210, 2) = "0" Then
Sheets("Tabelle1").Visible = xlVeryHidden
Sheets("Kosten nach Gewerken").Activate
MsgBox "Es sind noch keine Kosten in der KG 300/400 erfasst!", vbOKOnly + vbCritical, " _
Eingabefehler"
UserForm2.Hide
Else
UserForm2.Hide
Sheets("Kosten nach Gewerken").Activate
Sheets("Tabelle1").Visible = xlVeryHidden
inta = MsgBox("Die Daten wurden in die Datenbank übernommen und stehen bei der nächsten  _
Berechnung zu Verfügung!", vbOKOnly + vbInformation, "Erfolgreiche Eingabe")
End If
End Sub


Und dann habe ich noch den zweiten Code den mir "Chaos" in diesem Forum geschrieben hat und der auch funktioniert. An dieser Stelle noch mals vielen Dank für deine Hilfe.
Ich versuche jetzt den zweiten Code ausführen zu lassen wenn im ersten alle voraussetzungen erfüllt sind und bevor die Userform2 geschlossen wird.


Sub test()
Dim zeile As Integer, s As Integer, a As Integer, b As Integer
Dim t As String
Application.ScreenUpdating = False 'Auschalten Bildschirmaktualisierung
If Range("A6").Value = "1" Then ' Abfrage, ob A4 = 1
If Range("B45").Value = "" Then ' Schauen, ob letzte zeile in diesem Bereich frei
If Range("B14").Value  "" Then
For zeile = 14 To 45 ' bereich für 1 in der  (Zeile 10 - 45)
If Cells(zeile, 6).Value  "" Then ' Abfrage, ob Zellen leer sind
s = Cells(zeile, 6).Row ' zellenindex
Cells(zeile, 11).Value = Cells(zeile - 1, 11).Value + Cells(zeile, 6).Value '  _
Summenbildung wert K(zeile -1) + Wert in F(zeile)
Cells(zeile, 12).Value = Cells(zeile - 1, 12).Value + Cells(zeile, 7).Value ' u.s.w für  _
die anderen werte nebendran
Cells(zeile, 13).Value = Cells(zeile - 1, 13).Value + Cells(zeile, 8).Value
Cells(zeile, 14).Value = Cells(zeile - 1, 14).Value + Cells(zeile, 9).Value
Cells(zeile, 15).Value = Cells(zeile - 1, 15).Value + Cells(zeile, 10).Value
End If
Next zeile
s = s + 1 ' erste freie Zelle , zeilen index
Range("B214:J214").Copy Destination:=Range("B" & s) ' kopieren von B214:j214 nach erste freie  _
Zelle in B
Cells(s, 11).Value = Cells(s - 1, 11).Value + Cells(s, 6).Value ' summenbildung für freie zeile, _
analog zu oben
t = Cells(s, 11).Value ' Variablenzuweisung
End If
End If
End If
End Sub


Also wenn mir jemand bei der Lösung helfen könnte wäre ich ihm zu Dank verplichtet.
Mit freundlichen Grüßen
Thomas Wagner

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code in Code integrieren
04.07.2007 09:25:10
Rudi
Hallo,
einfach
Call Test
an die richtige Stelle setzen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Code in Code integrieren
04.07.2007 09:31:00
Thomas
Hallo Rudi,
Call Test an die richtige Stelle?
Einfach in den Code schreiben oder wie?
Könntest du mir das etwas genauer erklähren?
Wäre dir sehr dankbar dafür.
Gruß Thomas

AW: Code in Code integrieren
04.07.2007 09:48:15
Rudi
Hallo,

Einfach in den Code schreiben oder wie?


Exakt.
Test würde auch reichen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Code in Code integrieren
04.07.2007 09:47:00
Chaos
Servus Thomas,
ich geh mal davon aus, dass der Code nach der Routine oben gestartet werden soll, dann nach dem letzten End if, Call test schreiben und den Code test in dasselbe Modul reinkopieren.
Also z.B.: Tabelle1 oder DieseArbeitsmappe, wo der andere halt auch steht. Und füge ganz unten bei test noch ein Application.ScreenUpdating = True ein (nach letztem End if).
wie ich she fehlt da unten ein bischen was.
Gruß
Chaos

AW: Code in Code integrieren
04.07.2007 09:50:00
Chaos
Servus,
ich nochmal, man sollte den text richtig lesen, also bevor UserForm2.Hide (denke, das meinst du mit schließen) dann eben Call Test.
Gruß
Chaos

Anzeige
AW: Code in Code integrieren
04.07.2007 10:03:00
Thomas
Hallo Chaos,
jetzt bin ich total durch den Wind!
Hab die Ermittlung des Mittelwertes jetzt Excel überlassen und wollte sie daher aus deinem Code raus haben.
Will jetzt eigentlich nur noch, dass wenn alle Eingaben in der Userform erfüllt sind dein Code die Werte in meine Tabelle anhängt.
Oh man ich bin doch nur ein Mensch vom Bau :-)
Danke für deine Hilfe

AW: Code in Code integrieren
04.07.2007 10:25:00
Chaos
Servus,
also das mit dem Bau ist völlig i.O..
Aber jetzt nochmal. Die Werte stehen in einem Tabellenblatt, richtig? Und in deinem Code steht der Satz UserForm2.Hide (2-mal).
Der Code soll im Tabellenblatt ausgeführt werden, richtig? Also nach Ausblenden der Userform, richtig?
Dann schreib nach dem Satz UserForm2.Hide, Call test (1. von den beiden, beim 2. "Else...", soll ja nochmal eingegeben werden, wenn ich das richtig überflogen habe), dann sollte das eigentlich passiert sein.
Gruß
Chaos

Anzeige
AW: Code in Code integrieren
04.07.2007 10:28:45
Thomas
Hallo Chaos,
hoffe ich nerve nicht und du hast noch mal die Geduld mir zu helfen.
Mit Call test komme ich nicht weit, da ich da einen Stapelfehler erzeuge und in der Hilfe stehen dazu nur Dinge mit denen ich nix anfangen kann.
Würde es dir was ausmachen mir einen Code zu schreiben der einfach nur wenn in Feld A6 eine 1 steht die Zeile B214:J214 an die Tabelle Bürogebäude anhängt und evtl. noch wenn in A6 eine 2 steht die besagte Zeile an die Tabelle Schulen/Kindergärten anhängt. So hätte ich eine Vergleichsmöglichkeit und könnte mir hoffentlich selber weiterhelfen.
https://www.herber.de/bbs/user/43812.xls
Ich wäre dir auf ewig dankbar.
Gruß Thomas

Anzeige
AW: Code in Code integrieren
04.07.2007 10:39:00
Chaos
Servus,
poste doch mal die Datei mit Userform, dann kann ich dir das evtl. einfügen und sehe auch, was passiert.
Gruß
Chaos

AW: Code in Code integrieren
04.07.2007 11:25:22
Thomas
Hallo Chaos,
würde ich gerne aber es ist zu groß
und wenn ich allesandere Lösche macht es ja auch keinen sinn oder?
Kannst du hiermit was anfangen?
Ich habe jetzt alle anderen Tabellen gelöscht.
Also die Schaltfläche "In die Datenbank" steht normal wo anderst. Das Makro soll halt seine Abfrage machen und dann die Werte an die Tabelle anhängen.

Die Datei https://www.herber.de/bbs/user/43814.xls wurde aus Datenschutzgründen gelöscht


Gruß
Thomas

Anzeige
AW: Code in Code integrieren
04.07.2007 12:52:00
Chaos
Servus,
o.k. jetzt weiß ich wenigstens mal, was passiert. Was ist den die Datenbank? Tabelle1 eher nicht, oder ?
ich habe festgestellt, dass Tabelle 1 ausgeblendet wird. man könnte sie wieder einblenden und ein Worksheet_Activate laufen lassen, wobei dann das Makro abläuft. Der Punkt ist nur in A6 steht eine zahl, die Nicht automatisch eingefügt wird, ist das Absicht.
das könnte man noch einbauen, kein Problem. Call test kann nicht funktionieren, weil das andere Makro in Tabelle1 steht, also auf jedenfall nicht so.
ich probier mal was aus und schick es dir dann.
gruß
Chaos

Anzeige
AW: Code in Code integrieren
04.07.2007 13:29:42
Thomas
Hallo Chaos,
A6 wird von vier Optionsfeldern in einer anderen Tabelle gesteuert dieses Optionsfelder geben die Zahlen 1-4 in A6 Tabelle 1 wieder.
Würde dir ja alles schicken aber es sind zusammen 1,4 KB und die kann man hier nicht Upload.
Danke dir aber vielmals für deine Bemühungen
Gruß Thomas

AW: Code in Code integrieren
04.07.2007 14:08:00
Chaos
Servus Thomas,
https://www.herber.de/bbs/user/43823.xls
in die Datenbank drücken, Werte eingeben, wie gehabt, dann erscheint eine InputBox hier 1 oder 2 eingeben (wie gewünscht) und die Werte werden dahin geschrieben, wo du sie haben möchtest.
wenn der in die Datenbank-Button nicht in der tabelle1 steht, muss in den Code der Userform noch in der Else Schleife ein Sheets("Tabelle1").Activate rein, sonst geht es so.
das Sheet wird am ende ausgeblendet, du kannst es mit tabelle1.einblenden wieder zurückholen.
bei Fragen stehe ich gerne zur Verfügung.
Gruß
Chaos

Anzeige
AW: Code in Code integrieren
04.07.2007 14:22:00
Chaos
Servus,
habe das mit der Steuerung von A6 gerade erst gelesen. Wird der Wert mit jede,mal neu eingelesen und auch erst nach der Eingabe der daten ?
wenn ja geht das trotzdem, was ich in der anderen mappe gemacht habe, du musst dann nur das Activate Ereignis umschreiben. oder du baust eine hilfszelle ein z.B. a5 und kopierts mit dem activate_Ereignis den wert aus A6 in A5 (als wert ,nicht als Formel)
Dann musst du im Change_Ereignis nur noch die Zieladresse Target.Address in "$A$5" ändern.
gruß
chaos

AW: Code in Code integrieren
04.07.2007 15:48:00
Thomas
Hallo Chaos,
hab deinen Code gerade erhalten schon wieder mal Danke!
Werde gleich mal demit Experimentieren :-)
Will dir aber erst noch mal kurz das ganze erklähren ich glaube das bin ich dir schuldig.
In der ersten Tabelle sie heisst bei mir"Kostenschätzung" kann der nuter wählen was er bauen möchte, soll heissen en Bürogebäude =1 eine Schule oder Kindergarten =2 ein Wohnhaus =3 oder ein Lager =4 Zahlen werden in Tabelle 1 A6 geschrieben.
Nach dieser Eingabe muss man sich entscheiden nach welcher Art die Berechnung durchführenwerden soll BRI,NF oder BGF diese Zahl wird in Tabelle 1 A5 geschrieben.
Wenn das geschehen ist, arbeitet Tabelle 1 und gibt mir in der Tabelle "Kostenschätzung" den gewünschten Mittelwert aus Tabelle 1 zurück und ich kann diesen mit einer Fläche mal nehmen.
Im nächsten Tabellenblatt "Genaue Kosten" kann man dann eine ziemlich genaue Kostenberechnung in den einzelnen Kostengruppen vornehmen. Diese Werte aus der Kostenberechnung möchte ich dann wieder in die Mittelwerte der Kostenschätzung speichern. Denn je mehr Baumaßnahmen in der Tabelle 1 auftauchen desto genauer wird mit der Zeit meine Kostenschätzung.
Das einzige wass mir dazu noch fehlt/gefehlt hat ist ich schreib es mal in meinen Worten:
Wenn A6=1 dann schreibe den Wert aus B214:J214 in B14:J14 wenn B14:J14 besetzt dan in die nächste wenn die nächste besetzt dann in die ünernächste usw. usw.
Wenn A6=2 dann schreibe den wert aus B214:J214 in B56:J56 wenn B56:J56 besetzt dann in die nächste wenn die nachste besetzt dann in die übernächste usw. usw.
Wenn A6=3 dann schreibe den wert aus B214:J214 in B125:J125 wenn B125:J125 besetzt dann in die nächste wenn die nachste besetzt dann in die übernächste usw. usw.
Wenn A6=4 dann schreibe den wert aus B214:J214 in B172:J172 wenn B172:172 besetzt dann in die nächste wenn die nachste besetzt dann in die übernächste usw. usw.
So und jetzt werde ich mal versuchen ob ich das mit deinem Code hinbekomme.
Werde mich noch mal melden
Grüße und Danke
Thomas

Anzeige
AW: Code in Code integrieren
04.07.2007 16:16:28
Thomas
Ich schon wieder,
zweifel so langsam ob ich es noch jemals hinbekomme.
Dein Code sieht klasse aus aber verstehen tu ich ihn in keinster weise. Könntest du mir in meinen Code die vorhin geschriebene Formel tippen?
Also ich meine wenn mein Code so aussieht:

Private Sub CommandButton2_Click()
Dim inta As Integer
Set frm = UserForm2
Sheets("Tabelle1").Activate
With frm
Cells(223, 1).Value = .TextBox1.Value
Cells(223, 2).Value = .TextBox2.Value
Cells(223, 3).Value = .TextBox3.Value
Cells(214, 2).Value = .TextBox4.Value
End With
Sheets("Kosten nach Gewerken").Visible = True
Sheets("Kosten nach Gewerken").Select
For Each TextBox In UserForm2.Controls
If TextBox = "" Then
MsgBox "Es sind ein oder mehrere Felder nicht ausgefüllt!", vbOKOnly + vbCritical, " _
Eingabefehler"
Exit Sub
ElseIf TextBox = "0" Then
MsgBox "Nette Idee aber leider NEIN, denn durch 0 kann man nicht teilen!", vbOKOnly +  _
vbCritical, "Eingabefehler"
Exit Sub
End If
Next TextBox
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select
If Cells(210, 2) = "0" Then
Sheets("Tabelle1").Visible = xlVeryHidden
Sheets("Kosten nach Gewerken").Activate
MsgBox "Es sind noch keine Kosten in der KG 300/400 erfasst!", vbOKOnly + vbCritical, " _
Eingabefehler"
UserForm2.Hide
WENN ALLE EINGABEN i.O. SIND DANN MACHE!
AN DIESE STELLE MÜSSTE JETZT DIE GESCHICHTE MIT DEM "IF A6=1 THEN.....IF A6=2 THEN... USW.
UND WENN DAS GEMACHT IST DANN MACHE UNTEN WEITER
Else
UserForm2.Hide
Sheets("Kosten nach Gewerken").Activate
Sheets("Tabelle1").Visible = xlVeryHidden
inta = MsgBox("Die Daten wurden in die Datenbank übernommen und stehen bei der nächsten  _
Berechnung zu Verfügung!", vbOKOnly + vbInformation, "Erfolgreiche Eingabe")
End If
End Sub


Hoffe du kannst mir folgen was ich will und noch ein, hoffentlich letztes mal hilfreich zur Seite stehen.
In Tiefster Erfurcht vor deiner bisher erbrachten Leistung
Thomas

Anzeige
AW: Code in Code integrieren
04.07.2007 17:36:52
Chaos
Servus,
jetzt nochmal langsam, gehen wir den Code mal durch:

Private Sub CommandButton2_Click()
Dim inta As Integer
Set frm = UserForm2
Sheets("Tabelle1").Activate
With frm
Cells(223, 1).Value = .TextBox1.Value ' hier werden die Werte eingegeben
Cells(223, 2).Value = .TextBox2.Value
Cells(223, 3).Value = .TextBox3.Value
Cells(214, 2).Value = .TextBox4.Value
End With
Sheets("Kosten nach Gewerken").Visible = True
Sheets("Kosten nach Gewerken").Select ' hier kommt dann Sheets..., warum auch immer, bitte Erklä _
rung
For Each TextBox In UserForm2.Controls ' ab hier wird kontrolliert, ob alle Werte eingegeben  _
sind und die Eingabe verlassen
If TextBox = "" Then
MsgBox "Es sind ein oder mehrere Felder nicht ausgefüllt!", vbOKOnly + vbCritical, " _
Eingabefehler"
Exit Sub
ElseIf TextBox = "0" Then ' hier dasselbe Spiel
MsgBox "Nette Idee aber leider NEIN, denn durch 0 kann man nicht teilen!", vbOKOnly +  _
vbCritical, "Eingabefehler"
Exit Sub
End If
Next TextBox
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select ' hier sind wir wieder bei Tabelle1
If Cells(210, 2) = "0" Then ' Hier wird geprüft ob 210 = 0, wenn ja dann die MsgBox, wenn nein ( _
alle Werte richtig), dann geht das Makro zur Else-Anweisung
Sheets("Tabelle1").Visible = xlVeryHidden
Sheets("Kosten nach Gewerken").Activate
MsgBox "Es sind noch keine Kosten in der KG 300/400 erfasst!", vbOKOnly + vbCritical, " _
Eingabefehler"
UserForm2.Hide
WENN ALLE EINGABEN i.O. SIND DANN MACHE!
AN DIESE STELLE MÜSSTE JETZT DIE GESCHICHTE MIT DEM "IF A6=1 THEN.....IF A6=2 THEN... USW.
UND WENN DAS GEMACHT IST DANN MACHE UNTEN WEITER
Else
UserForm2.Hide
' also hierhin, somit muss das Reinschreiben eigentlich hierher
Sheets("Kosten nach Gewerken").Activate
Sheets("Tabelle1").Visible = xlVeryHidden
inta = MsgBox("Die Daten wurden in die Datenbank übernommen und stehen bei der nächsten  _
Berechnung zu Verfügung!", vbOKOnly + vbInformation, "Erfolgreiche Eingabe")
End If
End Sub


also, dann so:


Private Sub CommandButton2_Click()
Dim inta As Integer
Set frm = UserForm2
Sheets("Tabelle1").Activate
With frm
Cells(223, 1).Value = .TextBox1.Value ' hier werden die Werte eingegeben
Cells(223, 2).Value = .TextBox2.Value
Cells(223, 3).Value = .TextBox3.Value
Cells(214, 2).Value = .TextBox4.Value
End With
Sheets("Kosten nach Gewerken").Visible = True
Sheets("Kosten nach Gewerken").Select ' hier kommt dann Sheets..., warum auch immer, bitte Erklä _
rung
For Each TextBox In UserForm2.Controls ' ab hier wird kontrolliert, ob alle Werte eingegeben  _
sind und die Eingabe verlassen
If TextBox = "" Then
MsgBox "Es sind ein oder mehrere Felder nicht ausgefüllt!", vbOKOnly + vbCritical, " _
Eingabefehler"
Exit Sub
ElseIf TextBox = "0" Then ' hier dasselbe Spiel
MsgBox "Nette Idee aber leider NEIN, denn durch 0 kann man nicht teilen!", vbOKOnly + _
vbCritical, "Eingabefehler"
Exit Sub
End If
Next TextBox
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select ' hier sind wir wieder bei Tabelle1
If Cells(210, 2) = "0" Then ' Hier wird geprüft ob 210 = 0, wenn ja dann die MsgBox, wenn nein ( _
alle Werte richtig), dann geht das Makro zur Else-Anweisung
Sheets("Tabelle1").Visible = xlVeryHidden
Sheets("Kosten nach Gewerken").Activate
MsgBox "Es sind noch keine Kosten in der KG 300/400 erfasst!", vbOKOnly + vbCritical, "  _
Eingabefehler"
UserForm2.Hide
Else
UserForm2.Hide
' also hierhin, somit muss das Reinschreiben eigentlich hierher
Dim zeile As Integer, s As Integer, a As Integer, b As Integer
Application.ScreenUpdating = False 'Auschalten Bildschirmaktualisierung
Select Case Range("A6").Value
Case 1:
If Sheets("Tabelle1").Range("B45").Value = "" Then ' Schauen, ob letzte zeile in diesem  _
Bereich frei
For zeile = 10 To 45 ' bereich für 1 in der  (Zeile 10 - 45)
If Sheets("Tabelle1").Cells(zeile, 6).Value  "" Then ' Abfrage, ob Zellen leer  _
sind
s = Sheets("Tabelle1").Cells(zeile, 6).Row ' zellenindex
Sheets("Tabelle1").Cells(zeile, 11).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 11).Value + Sheets("Tabelle1").Cells(zeile, 6).Value ' _
Summenbildung wert K(zeile -1) + Wert in F(zeile)
Sheets("Tabelle1").Cells(zeile, 12).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 12).Value + Sheets("Tabelle1").Cells(zeile, 7).Value ' u.s.w für _
die anderen werte nebendran
Sheets("Tabelle1").Cells(zeile, 13).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 13).Value + Sheets("Tabelle1").Cells(zeile, 8).Value
Sheets("Tabelle1").Cells(zeile, 14).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 14).Value + Sheets("Tabelle1").Cells(zeile, 9).Value
Sheets("Tabelle1").Cells(zeile, 15).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 15).Value + Sheets("Tabelle1").Cells(zeile, 10).Value
End If
Next zeile
s = s + 1 ' erste freie Zelle , zeilen index
Sheets("Tabelle1").Range("B214:J214").Copy
Sheets("Tabelle1").Range("B" & s).PasteSpecial Paste:=xlValues  ' kopieren von B214: _
j214 nach erste freie _
Zelle in B
Sheets("Tabelle1").Cells(s, 11).Value = Sheets("Tabelle1").Cells(s - 1, 11).Value +  _
Sheets("Tabelle1").Cells(s, 6).Value ' summenbildung für freie zeile, _
analog zu oben
Sheets("Tabelle1").Range("F" & s & ":" & "H" & s).NumberFormat = "#,##0.00 $"
Range("B" & s).Select
Else
MsgBox ("Liste ist voll!")
Application.ScreenUpdating = True
Exit Sub
End If
Case 2:
If Sheets("Tabelle1").Range("B87").Value = "" Then ' Schauen, ob letzte zeile in diesem  _
Bereich frei
For zeile = 52 To 87
If Sheets("Tabelle1").Cells(zeile, 6).Value  "" Then ' Abfrage, ob Zellen leer  _
sind
s = Sheets("Tabelle1").Cells(zeile, 6).Row ' zellenindex
Sheets("Tabelle1").Cells(zeile, 11).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 11).Value + Sheets("Tabelle1").Cells(zeile, 6).Value ' _
Summenbildung wert K(zeile -1) + Wert in F(zeile)
Sheets("Tabelle1").Cells(zeile, 12).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 12).Value + Sheets("Tabelle1").Cells(zeile, 7).Value ' u.s.w für _
die anderen werte nebendran
Sheets("Tabelle1").Cells(zeile, 13).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 13).Value + Sheets("Tabelle1").Cells(zeile, 8).Value
Sheets("Tabelle1").Cells(zeile, 14).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 14).Value + Sheets("Tabelle1").Cells(zeile, 9).Value
Sheets("Tabelle1").Cells(zeile, 15).Value = Sheets("Tabelle1").Cells(zeile -  _
1, 15).Value + Sheets("Tabelle1").Cells(zeile, 10).Value
End If
Next zeile
s = s + 1 ' erste freie Zelle , zeilen index
Sheets("Tabelle1").Range("B214:J214").Copy
Sheets("Tabelle1").Range("B" & s).PasteSpecial Paste:=xlValues  ' kopieren von B214: _
j214 nach erste freie _
Zelle in B
Sheets("Tabelle1").Cells(s, 11).Value = Sheets("Tabelle1").Cells(s - 1, 11).Value +  _
Sheets("Tabelle1").Cells(s, 6).Value ' summenbildung für freie zeile, _
analog zu oben
Sheets("Tabelle1").Range("F" & s & ":" & "H" & s).NumberFormat = "#,##0.00 $"
Range("B" & s).Select
Else
MsgBox ("Liste ist voll!")
Application.ScreenUpdating = True
Exit Sub
End If
End Select
Application.ScreenUpdating = True
Sheets("Kosten nach Gewerken").Activate
Sheets("Tabelle1").Visible = xlVeryHidden
inta = MsgBox("Die Daten wurden in die Datenbank übernommen und stehen bei der nächsten  _
Berechnung zu Verfügung!", vbOKOnly + vbInformation, "Erfolgreiche Eingabe")
End If
End Sub


Ich hoffe, das war's jetzt.
Jetzt macht das Makro bei Eingabe aller Werte auch die Preise u.s.w. das Kopieren und zwar, wenn du in Userform auf In dieDatenbank drückst.
Ich denke, dass du das wolltest, wenn nicht, dann versteh ich 's auch nimmer. Für 3 und 4 mussst du nur den teilcode kopieren und unten dran setzten und die Zeilen anpassen:
Case 2: ' hier 3 oder 4 schreiben
If Sheets("Tabelle1").Range("B87").Value = "" Then ' Schauen, ob letzte zeile in diesem Bereich frei
For zeile = 52 To 87 ' hier die Zeilen von Bereich 3 oder 4, vgl. oben
If Sheets("Tabelle1").Cells(zeile, 6).Value "" Then ' Abfrage, ob Zellen leer sind
s = Sheets("Tabelle1").Cells(zeile, 6).Row ' zellenindex
Sheets("Tabelle1").Cells(zeile, 11).Value = Sheets("Tabelle1").Cells(zeile - 1, 11).Value + Sheets("Tabelle1").Cells(zeile, 6).Value ' _
Summenbildung wert K(zeile -1) + Wert in F(zeile)
Sheets("Tabelle1").Cells(zeile, 12).Value = Sheets("Tabelle1").Cells(zeile - 1, 12).Value + Sheets("Tabelle1").Cells(zeile, 7).Value ' u.s.w für _
die anderen werte nebendran
Sheets("Tabelle1").Cells(zeile, 13).Value = Sheets("Tabelle1").Cells(zeile - 1, 13).Value + Sheets("Tabelle1").Cells(zeile, 8).Value
Sheets("Tabelle1").Cells(zeile, 14).Value = Sheets("Tabelle1").Cells(zeile - 1, 14).Value + Sheets("Tabelle1").Cells(zeile, 9).Value
Sheets("Tabelle1").Cells(zeile, 15).Value = Sheets("Tabelle1").Cells(zeile - 1, 15).Value + Sheets("Tabelle1").Cells(zeile, 10).Value
End If
Next zeile
s = s + 1 ' erste freie Zelle , zeilen index
Sheets("Tabelle1").Range("B214:J214").Copy
Sheets("Tabelle1").Range("B" & s).PasteSpecial Paste:=xlValues ' kopieren von B214:j214 nach erste freie _
Zelle in B
Sheets("Tabelle1").Cells(s, 11).Value = Sheets("Tabelle1").Cells(s - 1, 11).Value + Sheets("Tabelle1").Cells(s, 6).Value ' summenbildung für freie zeile, _
analog zu oben
Sheets("Tabelle1").Range("F" & s & ":" & "H" & s).NumberFormat = "#,##0.00 $"
Range("B" & s).Select
Else
MsgBox ("Liste ist voll!")
Application.ScreenUpdating = True
Exit Sub
End If
Gruß
Chaos

AW: Code in Code integrieren
04.07.2007 18:51:00
Thomas
Hallo Chaos,
denke das könnte die Lösung sein werde es aber erst morgen rausfinden.
Die Erklährung die dich Interessiert ist denkbar einfach:
Mein Excelprogramm besteht aus 7 Tabellenblättern die immer nur über ein Makro weiter bzw. zurück geblättert werden können.
Soll heissen wenn Tabelle 6 offen ist und du auf weiter drückst wird Tabelle 6 geschlossen(xlVeryHidden)und Tabelle7 geöffnet (Visible) usw.
Somit kann der Entanwender der noch viel viel viel weniger Ahnung von VBA hat als ich nur die Tabellenblätter ansehen und bearbeiten die ich ihm über die (Weiter/zurück)Makros freigebe. Die Tanbelle 1 soll eine reine Tabelle zum Datensammeln und berechnen sein die braucht niemand mehr zu sehen wenn alles läuft und daher war mein gedanke des sich der Code die Tabelle 1 öffnet darin arbeitet und hinterher wieder schließt. Das war halt mein Gedanke. Wenn du mir jetzt sagst des das totaler schwachsinn ist will ich dir das gerne glauben ist halt nur so ein Gedanke von mir gewesen wie es sein müsste.
Ich vermute mal wenn du die Tabellen mal als Ganzes sehen würdest, würdest du einen Schock fürs Leben bekommen aber dafür das ich vor 3 Monaten noch nicht mal wusste was VBA bedeutet und mir alles mit einem Buch und dem Recorder zusammengebastelt habe muss es ja auch nicht so proffesionell sein. ;-)
Werde dir morgen noch mal schreiben ob es dann funzt und bedanke mich vielmals und abertausendemal für deine Bemühungen.
Gruß Thomas

AW: Code in Code integrieren
04.07.2007 19:54:00
Chaos
Servus,
für drei Monate und Learning by Doing ist das Ergebnis doch garnicht schlecht. Das mit dem Ausblenden ist auch i.O..
Nur ich würde dir vorschlagen, die Daten in Tabelle1 nicht untereinander zu schreiben, sondern die einzelnen Tabellen nebeneinander zu schreiben, dann hast du wesentlich mehr Platz zum Reinschreiben, so ist die Spalte relativ schnell voll.
Gruß
Chaos

AW: Code in Code integrieren
05.07.2007 07:52:52
Thomas
Guten Morgen Chaos,
hab jetzt ein Problem mit den MsgBoxen die cerden in dem Code rot und es gibt eine Fehlermeldung, hast du spontan eine Idee woran das liegen könnte?
Und wieder einmal mehr Danke für deine Hilfe
Gruß Thomas

AW: Code in Code integrieren
05.07.2007 08:05:00
Thomas
Ich noch mal,
hab meinen Fehler gefunden und mit Begeisterung festgestellt, dass es jetzt genau so läuft wie ich es mir vorgestellt habe.
Ziehe voller Begeisterung und Annerkennung deiner erbrachten Leistung den Hut vor dir.
Und möchte mich nochmals für die von dir in mich geofperte Zeit bedanken.
Also dann bis zum evtl. nächsten Problem ;-)
Gruß Thomas

AW: Code in Code integrieren
05.07.2007 09:05:00
Chaos
Bitte, gern geschehen!
Und wenn wir jetzt an den Anfang zurükgehen, hier wo jetzt der Code steht, hättetst du call test schreiben müssen, wobei der Code im selben Modul stehen muss.
Gruß
Chaos

AW: Code in Code integrieren
05.07.2007 09:43:05
Thomas
Na dann,
werde es mir für die Zukunft merken
Gruß
Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige