Clever-Excel-Forum

Normale Version: Tabellenblatt mit Inhalt einer Combobox benennen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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.Count2).End(xlUp).Row 1
    
.Cells(intErsteLeereZeile1).Value CDate(Me.TxtDatum.Value)
    .
Cells(intErsteLeereZeile2).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
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
(18.06.2014, 14:05)Steffl schrieb: [ -> ]...teste mal...
'den Punkt vor Rows.Count ergänzt
Code:
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
[attachment=303]
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
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
(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")
(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:
(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???
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.
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
Seiten: 1 2