Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo @all
Ich versuch mich ein wenig mit VBA, es zu verstehen zu erlernen
Bin mal wieder am grübeln.,Wie benenne ich ein neues anzulegendes Tabellenblatt mit dem Inhalt der Combobox1
PHP-Code: Private Sub CmdEingabe_Click() Dim wksZiel As Worksheet Dim intErsteLeereZeile As Long Dim curNetto As Currency Set wksZiel = Worksheets
With wksZiel 'ActiveSheet ' meine Idee ("combobox1.Text") ???
intErsteLeereZeile = .Cells(Rows.Count, 2).End(xlUp).Row + 1 .Cells(intErsteLeereZeile, 1).Value = CDate(Me.TxtDatum.Value) .Cells(intErsteLeereZeile, 2).Value = Me.TxtBezeichnung.Value ......... End With End Sub
wo dann die Daten der einzelnen Textboxen gespeichert werden können.
wäre mir ein VBA-Kenner bitte behilflich.
mfg
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Frank,
teste mal
Code: 'würde wahrscheinlich nicht gehen
' Set wksZiel = Worksheets
'hättest es fast gehabt
With Worksheets(Combobox1.Text) 'ActiveSheet ' meine Idee ("combobox1.Text") ???
'den Punkt vor Rows.Count ergänzt
intErsteLeereZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 15.04.2014
Version(en): Office 2007
(18.06.2014, 14:05)Steffl schrieb: ...teste mal...
'den Punkt vor Rows.Count ergänztCode: intErsteLeereZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
Fehlermeldung Index ausserhalb Bereich
Hallo Stefan,
ehrlich getippt. Ich krieg es nicht hin.
Bitte unterstütz mich ein weiteres Mal.
anbei die Original aus dem www mitgetippt - dropbox vom Herausgeber inaktiv zum download
Beispiel.xlsm (Größe: 41,63 KB / Downloads: 10)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Frank,
sorry, war mein Fehler. Ich habe das mit dem neu anzulegenden Tabellenblatt überlesen. :37:
Bitte füge die Funktion auch mit ein.
Code: Private Sub CmdEingabe_Click() 'fügt die Daten in Tabellenblatt und schließt das UserForm1
Dim wksZiel As Worksheet
Dim intErsteLeereZeile As Long
Dim curNetto As Currency
' In eine anderes Tabellenblatt habe ich hinbekommen
If Not BlattExists(CboKategorieSteuer.Text) Then Sheets.Add(Type:=xlWorksheet).Name = CboKategorieSteuer.Text
Set wksZiel = Worksheets(CboKategorieSteuer.Text)
With wksZiel ' in diesem Fall Tabellenblatt >AlleDaten<
' was muss hier vor Rows.Count eingetragen werden ?
intErsteLeereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(intErsteLeereZeile, 1).Value = CDate(Me.TxtDatum.Value)
.Cells(intErsteLeereZeile, 2).Value = Me.TxtBezeichnung.Value
.Cells(intErsteLeereZeile, 3).Value = Me.CboKategorieSteuer.Value
.Cells(intErsteLeereZeile, 4).Value = CCur(Me.TxtBrutto.Value)
.Cells(intErsteLeereZeile, 5).Value = CDbl(Me.cboSteuersatz.Value)
curNetto = Round(CCur(Me.TxtBrutto.Value) / (1 + CDbl(Me.cboSteuersatz.Value)), 2)
.Cells(intErsteLeereZeile, 6).Value = curNetto
.Cells(intErsteLeereZeile, 7).Value = CCur(Me.TxtBrutto.Value) - curNetto
End With
' Unload UserForm1
End Sub
Function BlattExists(BlattName As String) As Boolean
On Error Resume Next
BlattExists = Not ThisWorkbook.Worksheets(BlattName) Is Nothing
On Error GoTo 0
End Function
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• WergibtmirRat
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo Stefan, einfach nur saugeil (sorry für den Ausdruck, aber mein Erstaunen ist grenzenlos), brüte hier schon seit dem Mittag drüber.
nächste Sache:
Im Tabellenblatt "alleDaten" Zellen A1:G1 befüllt mit: Datum; Objekt; Kategorie; Brutto; Steuersatz; Netto und Mehrwertsteuer
Können diese Beschriftungen irgendwie mit in die neu generierten Tabellenblätter übermittelt werden oder gar mittels Code quasi in einem Rutsch hergestellt werden?
mfg
Registriert seit: 10.04.2014
Version(en): 2016 + 365
(18.06.2014, 17:08)WergibtmirRat schrieb: Im Tabellenblatt "alleDaten" Zellen A1:G1 befüllt mit: Datum; Objekt; Kategorie; Brutto; Steuersatz; Netto und Mehrwertsteuer
Können diese Beschriftungen irgendwie mit in die neu generierten Tabellenblätter übermittelt werden oder gar mittels Code quasi in einem Rutsch hergestellt werden?
vor das end with:
Code: Worksheets("alleDaten").Range("A1:G1").Copy .Range("A1:G1")
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• WergibtmirRat
Registriert seit: 15.04.2014
Version(en): Office 2007
(18.06.2014, 17:28)Rabe schrieb: ...vor das end with...
Hallo Ralf
Besten Dank für deine Ünterstützung. Hab's selber gerade mit einem Makro versucht, aber immer ausserhalb vom Index gearbeitet. Nun kann ich weiter werkeln, probieren und lernen.
mfg
P.S. zum richtigen chillen ins lange Wochenende
an die helfenden Finger'z Stefan & Ralf vielen lieben Dank mit viel Basss :100:
Registriert seit: 15.04.2014
Version(en): Office 2007
(18.06.2014, 17:08)WergibtmirRat schrieb: ...benenne ich ein neues anzulegendes Tabellenblatt mit dem Inhalt der Combobox...
...Im Tabellenblatt "alleDaten" Zellen A1:G1 befüllt mit: Datum; Objekt; Kategorie; Brutto; Steuersatz; Netto und Mehrwertsteuer
Können diese Beschriftungen irgendwie mit in die neu generierten Tabellenblätter übermittelt werden oder gar mittels Code quasi in einem Rutsch hergestellt werden...
Hallo Excel und WM Gemeinde
Ich mach es kurz, wie erreiche ich das nach erzeugen des neu angelegten Datenblattes, dieses nicht angezeigt wird, sondern auf dem Aktuellen verbleibt???
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo Frank,
Zitat:Hallo Excel und WM Gemeinde
Ich mach es kurz, wie erreiche ich das nach erzeugen des neu angelegten Datenblattes, dieses nicht angezeigt wird, sondern auf dem Aktuellen verbleibt???
... ich mache es auch kurz.
Würdest Du den Code zeigen, würde man Dir auch gezielter und punktgenau helfen können.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo @all
Hier noch der Code
Code: Private Sub CmdEingabe_Click()
Dim wksZiel As Worksheet
Dim intErsteLeereZeile As Long
Dim curNetto As Currency
If Not BlattExists(CboKategorieSteuer.Text) Then Sheets.Add(Type:=xlWorksheet).Name = CboKategorieSteuer.Text
Set wksZiel = Worksheets(CboKategorieSteuer.Text)
intErsteLeereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(intErsteLeereZeile, 1).Value = CDate(Me.TxtDatum.Value)
.Cells(intErsteLeereZeile, 2).Value = Me.TxtBezeichnung.Value
.Cells(intErsteLeereZeile, 3).Value = Me.CboKategorieSteuer.Value
.Cells(intErsteLeereZeile, 4).Value = CCur(Me.TxtBrutto.Value)
.Cells(intErsteLeereZeile, 5).Value = CDbl(Me.cboSteuersatz.Value)
curNetto = Round(CCur(Me.TxtBrutto.Value) / (1 + CDbl(Me.cboSteuersatz.Value)), 2)
.Cells(intErsteLeereZeile, 6).Value = curNetto
.Cells(intErsteLeereZeile, 7).Value = CCur(Me.TxtBrutto.Value) - curNetto
Worksheets("alleDaten").Range("A1:G1").Copy .Range("A1:G1")
End With
' Unload UserForm1
End Sub
Danke vorab für die Hilfe
mfg
|