Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1336to1340
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
Inhaltsverzeichnis

Code vervollständigen

Code vervollständigen
21.11.2013 12:58:28
Andreas
Hallo Excelprofis,
mit folgenden Code kopiere ich das aktive Blatt und benenne es durch Inhalt von Combobox1 (auf UserForm).
Die Combobox bezieht ihren Inhalt aus einem Namensbereich (Woche). Dieser Namensbereich befindet sich auf einem Blatt in Spalte C.
Folgendes fehlt mir jetzt noch:
Nach dem Kopieren und umbenennen des Blattes, soll noch der Wert aus Spalte A (der Auswahl der Combobox) in die Zelle C1 des kopierten Blattes geschrieben werden.
Also: Auswahl von C3 (über Combobox), dann Wert aus A3 in Zelle C1 der Kopie.
Private Sub CommandButton1_Click()
Dim NewTabelName As String
'Neuen TabellenName aus Combobox holen und merken
NewTabelName = ComboBox1.Value    'ActiveSheet.Range("$C$3").Value
'Tabelle kopieren und hinter der letzten Tabelle einf?gen
ActiveSheet.Copy After:=Sheets(Sheets.Count)
'der neuen Tabelle den Name geben
Sheets(Sheets.Count).Name = NewTabelName
'With ActiveSheet
'    .Range("C1") =
'End With
End Sub
Danke fürs lesen und die Hilfe!
mfg, Andreas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vervollständigen
21.11.2013 13:13:42
Matthias
Hallo
Klär mich/uns doch bitte auf.
Wenn Du das Blatt kopierst stehen doch eh alle Werte
aus dem Quellblatt in dem neuen Blatt zur Verfügung.
Versteh ich also nicht ganz.
Und wie füllst Du denn die Combobox?
Gruß Matthias

AW: Code vervollständigen
21.11.2013 13:25:42
Andreas
Hallo Matthias,
Die Combobox wird, wie schon beschrieben, durch einem Namensbereich (Woche) befüllt. Dieser Namensbereich befindet sich auf einem Blatt in Spalte C.
Das stimmt, der Inhalt des erzeugten Blattes ist gleich, nur diese eine Zelle muss geändert werden.
mfg, Andreas

aaaha ...
21.11.2013 14:04:54
Matthias
Hallo
Dieser Namensbereich befindet sich auf einem Blatt in Spalte C.
Super ... ich rate also mal in welchem Blatt,scheint ja egal zu sein.
Ich definier also jetzt mal einen Namen(=Woche) in Tabelle3!C10:C16
Jetzt wechsle ich nach Tabelle1 und starte dann den Code.
Und nun, was soll nun von wo nach wo ?
Gruß Matthias

Anzeige
AW: aaaha ...
21.11.2013 14:15:20
Andreas
Hallo Matthias,
Sorry, wusste nicht, dass es wichtig ist in welchem Blatt sich der Namensbereich befindet.
Also, der Namensbereich "Woche" ist im ausgeblendetem Blatt "Steuerung". Diese Blatt sieht ungefähr so aus:
A1=30.12.13 B1=5 C1=30.12.-04.01.
A2=06.01.14 B2=5 C2=06.01.-11.01.
Die Zellen C1:C50 sind der Namensbereich "Woche".
Wird also jetzt in der Combobox 30.12.-04.01. ausgewählt, soll im kopierten Blatt in Zelle C1 "30.12.13" stehen, wird 06.01.-11.01. ausgewählt, soll in C1 der Kopie "06.01.14" stehen usw.
Danke für die Mühe!
mfg, Andreas

Anzeige
UserForm Combobox Woche - habe fertig ...
21.11.2013 15:05:44
Matthias
Hallo
mit ausgeblendetem Blatt "Steuerung" geht das mE nicht.
Blende es ein.
Im Bsp ist der BereichsName(Woche) in den Zeilen reduziert
Musst Du allso wieder anpassen.
Der Code:
Option Explicit
Private Sub CommandButton1_Click()
Dim NewTabelName As String
If ComboBox1.ListIndex > -1 Then
'Neuen TabellenName aus Combobox holen und merken
NewTabelName = ComboBox1.Value
'Tabelle kopieren und hinter der letzten Tabelle einf?gen
ActiveSheet.Copy After:=Sheets(Sheets.Count)
'der neuen Tabelle den Name geben
Sheets(Sheets.Count).Name = NewTabelName
With ActiveSheet.Range("C1")
.NumberFormat = "dd/mm/yy"
.Value = Worksheets("Steuerung").Range("A" & ComboBox1.ListIndex + 1)
End With
End If
End Sub
Die Datei:
Glück gehabt das ich grad Lust hatte das nachzubauen
https://www.herber.de/bbs/user/88188.xls
Hier muss noch eine Fehlerbehandlung rein im Falle das es das Blatt schon gibt.
Gruß Matthias

Anzeige
AW: aaaha ...
21.11.2013 15:09:08
Rudi
Hallo,
teste mal:
Private Sub CommandButton1_Click()
Dim NewTabelName As String, dteStart As Date
'Neuen TabellenName aus Combobox holen und merken
NewTabelName = combobox1.Value    'ActiveSheet.Range("$C$3").Value
With Sheets("Steuerung")
dteStart = .Cells(Application.Match(combobox1, .Columns(3), 0), 1)
End With
'Tabelle kopieren und hinter der letzten Tabelle einf?gen
ActiveSheet.Copy After:=Sheets(Sheets.Count)
'der neuen Tabelle den Name geben
Sheets(Sheets.Count).Name = NewTabelName
With ActiveSheet
.Range("C1") = dteStart
End With
End Sub

Gruß
Rudi

Anzeige
Vielen Dank euch beiden, funktioniert! owT
21.11.2013 15:21:38
Andreas
.

funktioniert wirklich ?
21.11.2013 15:29:36
Matthias
Hallo
Hier die überarbeitete Version mit Prüfung auf den neuen Blattnamen.
Option Explicit
Private Sub CommandButton1_Click()
Dim wks As Worksheet
Dim BlattName As String
Dim MyBool As Boolean
Dim NewTabelName As String
If ComboBox1.ListIndex > -1 Then
'Neuen TabellenName aus Combobox holen und merken
NewTabelName = ComboBox1.Value
BlattName = ComboBox1.Value
'Prüfe ob Blattname schon vorhanden ist
For Each wks In ThisWorkbook.Worksheets
If wks.Name = BlattName Then
MyBool = True
Exit For
End If
Next
If Not MyBool Then
'Tabelle kopieren und hinter der letzten Tabelle einf?gen
ActiveSheet.Copy After:=Sheets(Sheets.Count)
'der neuen Tabelle den Name geben
Sheets(Sheets.Count).Name = NewTabelName
With ActiveSheet.Range("C1")
.NumberFormat = "dd/mm/yy"
.Value = Worksheets("Steuerung").Range("A" & ComboBox1.ListIndex + 1)
End With
Else
MsgBox "Das Blatt [" & BlattName & "] ist schon vorhanden", vbInformation
End If
End If
Gruß Matthias

Anzeige
Re: funktioniert wirklich ?
21.11.2013 17:04:27
Andreas
Hallo Matthias,
so ist es natürlich noch besser mit der Prüfung.
Danke für die Hilfe!
mfg, Andreas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige