Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Zelleninhalte in Register kopieren + Format
31.08.2007 22:09:50
Lemmi
Hallo zusammen,
ich habe ein VBA Marko welches die aktuelle Seite 5x Kopiert. Es werden hier alle Formate und Inhalte Kopiert!
Nun möchte ich nur so viele Kopien erstellen, wie viele Zellen in eine Tabelle befüllt sind !
Es soll eine UND Abfrage mit eine gebunden werden!
Siehe auch Tabelle:https://www.herber.de/bbs/user/45605.xls
Gruß
Lemmi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte in Register kopieren + Format
31.08.2007 22:23:00
Horst
Hi,
"Es soll eine UND Abfrage mit eine gebunden werden! "
Kannst du das mal ins Deutsche übersetzen?
mfg Horst

AW: Zelleninhalte in Register kopieren + Format
01.09.2007 08:31:00
Lemmi
Hallo Horst,
.... "Es soll eine UND Abfrage mit eine gebunden werden! "... Sorry, ergibt natürlich keinen Sinn!
D.h. : Hat die Zelle C6 UND F6 einen Inhalt( Text oder Zahl) wird ein Register erstellt!
Die Datei habe ich noch einmal etwas angepasst!
https://www.herber.de/bbs/user/45606.xls
Gruß
Lemmi

AW: Zelleninhalte in Register kopieren + Format
01.09.2007 10:48:00
fcs
Hallo lemme,
das Makro muss dann etwa wie folgt aussehen.
Bei der Anpassung der Registerfarbe kann ich nicht weiterhelfen, da meine Excel97-Version dieses Feature noch nicht kennt.
Gruß
Franz

Sub Arbeitsblatt_Kopieren()
Dim TB_Basis As Worksheet, TB_Ref As Worksheet, TB_Neu As Worksheet, RefDaten As Range
Dim Zelle As Range
Set TB_Basis = Worksheets("Basetabelle")
Set TB_Ref = Worksheets("Referenztabelle")
With TB_Ref
Set RefDaten = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp))
For Each Zelle In RefDaten
If Not IsEmpty(Zelle) Then
TB_Basis.Copy After:=Worksheets(Worksheets.Count)
Set TB_Neu = ActiveSheet
TB_Neu.Name = Zelle.Value & " " & Zelle.Offset(0, 3).Value
'Button in Kopie löschen
TB_Neu.Shapes(1).Delete
End If
Next Zelle
End With
End Sub



Anzeige
AW: Zelleninhalte in Register kopieren + Format
01.09.2007 17:16:00
Lemmi
Hallo Franz,
funktioniert wunderbar ! Vielen Dank!
kann Ich noch eine Frage stellen?
Ich würde gerne noch eine weitere Spalte auslesen! Diese Spalte ist nicht an einer Bedingung geknüpft / festgemacht! D. h. ob die Zelle leer oder nicht leer ist Sie wird ausgelesen!
Z. Beispiel Inhalte von Spalte G! (zur Zeit keine Inhalte)
.... und wäre es möglich nach erster Ausführung eine zweiter ..dritte Ausführung .... X Aufrührung der Markos durchlaufen zu können! Es wird also eine gleiche Registerbennenung durchgeführt, jedoch mit dem Unterschied das eine Klammer hinter dem Registernamen steht also .... A01 (2) für zweite Kopie.
Gruß
Lemmi

Anzeige
AW: Zelleninhalte in Register kopieren + Format
01.09.2007 18:20:31
fcs
Hallo Lemmi,
ich hab in das Makro eine Eingabebox eingebaut zur Eingabe der Nr. der Kopie. Bei Nr. = 1 wird der Blattname wie bisher festgelegt. Bei Nr 1 wird die eingegebene Nummer in () angefügt.
Zur Abarbeitung einer anderen Spalte (hier G) hab ich eine Variante des Makros erstellt.
Damit solltest du weiter kommen.
Gruß
Franz

Sub Arbeitsblatt_Kopieren_Spalte()
Dim TB_Basis As Worksheet, TB_Ref As Worksheet, TB_Neu As Worksheet, RefDaten As Range
Dim KopieNr, Zelle As Range
KopieNr = InputBox("Kopie Nummer: " & vbLf & vbLf _
& "Bei Nummer >1 wird die KopieNr in ( ) dem Blattnamen hinzugefügt", _
"Tabellen Blätter kopieren, Referenztabelle Spalte C", 1)
If KopieNr = "" Then Exit Sub 'Abrechen wurde gewählt
Set TB_Basis = Worksheets("Basetabelle")
Set TB_Ref = Worksheets("Referenztabelle")
With TB_Ref
Set RefDaten = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp))
For Each Zelle In RefDaten
If Not IsEmpty(Zelle) Then
TB_Basis.Copy After:=Worksheets(Worksheets.Count)
Set TB_Neu = ActiveSheet
TB_Neu.Name = Zelle.Value & " " & Zelle.Offset(0, 3).Value & _
IIf(KopieNr = "1", "", "(" & KopieNr & ")")
'Button in Kopie löschen
TB_Neu.Shapes(1).Delete
End If
Next Zelle
End With
End Sub
Sub Arbeitsblatt_Kopieren_Spalte_G()
Dim TB_Basis As Worksheet, TB_Ref As Worksheet, TB_Neu As Worksheet, RefDaten As Range
Dim KopieNr, Zelle As Range, Spalte As Integer
KopieNr = InputBox("Kopie Nummer: " & vbLf & vbLf _
& "Bei Nummer >1 wird die KopieNr in ( ) dem Blattnamen hinzugefügt", _
"Tabellen Blätter kopieren, Referenztabelle Spalte G", 1)
If KopieNr = "" Then Exit Sub 'Abrechen wurde gewählt
Spalte = 7 'Spalte G
Set TB_Basis = Worksheets("Basetabelle")
Set TB_Ref = Worksheets("Referenztabelle")
With TB_Ref
Set RefDaten = .Range(.Cells(6, Spalte), .Cells(.Rows.Count, Spalte).End(xlUp))
For Each Zelle In RefDaten
TB_Basis.Copy After:=Worksheets(Worksheets.Count)
Set TB_Neu = ActiveSheet
TB_Neu.Name = Zelle.Value & " " & Zelle.Offset(0, 6 - Zelle.Column).Value & _
IIf(KopieNr = "1", "", "(" & KopieNr & ")")
'Button in Kopie löschen
TB_Neu.Shapes(1).Delete
Next Zelle
End With
End Sub


Anzeige
AW: Zelleninhalte in Register kopieren + Format
01.09.2007 21:37:03
Lemmi
Hallo Franz,
Das Makro ohne Spalte G funktioniert wunderbar! Danke!Danke!Danke!
Bei dem Marko wo die Spalte G mit einbezogen werden sollte, bin ich mir nicht ganz sicher, ob die Funktion ganz passt!
Ich möchte gerne das alles wie im ersten Makro "Sub Arbeitsblatt_Kopieren_Spalte()" funktioniert.
Wenn also C1 und F1 den Registerblattnamen bilden, beide Zellen haben einen Inhalt, dann soll auch der Zellinhalt G1 hinten an gestellt werden. Z. B ist der Zellinhalt G6 mit xyz gefüllt, so würde das zu erstellende Register
A 01 xyz heißen!
Zur Zeit entsteht der Name .....xyz 01 ....das A fehlt leider ! Ist kein Inhalt in Zelle G6 wird denn noch ein Register erzeugt! Eben wie mir Marko 1 (Registername A 01)
Gruß
Lemmi

Anzeige
AW: Zelleninhalte in Register kopieren + Format
02.09.2007 00:26:11
fcs
Hallo Lemmi,
das hatte ich dann ein wenig missverstanden. Hier die Anpassung, um den Wert aus Spalte G an den Blattnamen anzuhängen.
Übrigens Falls du beim Blattnamen die führende 0 der Nummer mit haben willst, wie im Tabellenblatt angezeigt, dann muss du folgenden Teil der Berechnungsformel für den Namen anpassen:
Zelle.Offset(0, 3).Value
wird zu
Zelle.Offset(0, 3).Text
Gruß
Franz

Sub Arbeitsblatt_Kopieren_Spalte_G()
Dim TB_Basis As Worksheet, TB_Ref As Worksheet, TB_Neu As Worksheet, RefDaten As Range
Dim Zelle As Range, Spalte As Integer
Spalte = 7 'Spalte G
Set TB_Basis = Worksheets("Basetabelle")
Set TB_Ref = Worksheets("Referenztabelle")
With TB_Ref
Set RefDaten = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp))
For Each Zelle In RefDaten
If Not IsEmpty(Zelle) Then
TB_Basis.Copy After:=Worksheets(Worksheets.Count)
Set TB_Neu = ActiveSheet
TB_Neu.Name = Zelle.Value & " " & Zelle.Offset(0, 3).Value & " " & _
Zelle.Offset(0, Spalte - Zelle.Column).Value
'Button in Kopie löschen
TB_Neu.Shapes(1).Delete
End If
Next Zelle
End With
End Sub


Anzeige
AW: Zelleninhalte in Register kopieren + Format
02.09.2007 07:46:00
Lemmi
Hallo Franz,
ich habe das Marko ausprobiert und es funktioniert wunderbar!
Dann wollte ich von Dir den sehr gut gemachten Vorschlag, nämlich die 0 in Spalte F mit auslesen, auch auf die Spalte G einbringen, diese hat nicht so recht geklappt!
Bin eben noch kein VBA Experte!
....(TB_Neu.Name = Zelle.Text & " " & Zelle.Offset(0, 3).Text & " " & Zelle.Offset(0, 4).Text & "" & _
Könntest Du den Code nochmals anpassen? (Spalt G mit Merkmal Text )
Ich möchte Deine geduld mit mir nicht zu sehr überstrapazieren, im übrigen bin mit dem Code sehr zufrieden, könnte man die beiden Code's nicht zusammenführen!
... ich würde gerne alle Merkmale zusammen bringen! Also Input Box und Auslesen der Spalte G mit Merkmal Text!
Schon einmal vielen Dank im Voraus!
Gruß
Lemmi

Anzeige
AW: Zelleninhalte in Register kopieren + Format
02.09.2007 16:50:23
fcs
Hallo Lemmi,
keine Ahnung, was da bei dir schief gegangen ist. Sieht auf den 1. Blickok aus.
Hier der komplette Code noch einmal inklusive EIngabebox für Kopie-Nr.
Gruß
Franz

Sub Arbeitsblatt_Kopieren_Spalte_G_Var1()
'Spalten C, F und G aus Referenztabelle in den Tabellennamen einbauen
Dim TB_Basis As Worksheet, TB_Ref As Worksheet, TB_Neu As Worksheet, RefDaten As Range
Dim KopieNr, Zelle As Range
KopieNr = InputBox("Kopie Nummer: " & vbLf & vbLf _
& "Bei Nummer >1 wird die KopieNr in ( ) dem Blattnamen hinzugefügt", _
"Tabellenblätter kopieren, Referenztabelle C+F+G", 1)
If KopieNr = "" Then Exit Sub 'Abrechen wurde gewählt
Set TB_Basis = Worksheets("Basetabelle")
Set TB_Ref = Worksheets("Referenztabelle")
With TB_Ref
'Bereich mit Daten in Spalte 3 (C)
Set RefDaten = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp))
For Each Zelle In RefDaten
If Not IsEmpty(Zelle) Then
TB_Basis.Copy After:=Worksheets(Worksheets.Count)
Set TB_Neu = ActiveSheet
TB_Neu.Name = Zelle.Text & " " & Zelle.Offset(0, 3).Text & _
IIf(IsEmpty(Zelle.Offset(0, 4)), "", " " & Zelle.Offset(0, 4).Text) & _
IIf(KopieNr = "1", "", "(" & KopieNr & ")")
'Button in Kopie löschen
TB_Neu.Shapes(1).Delete
End If
Next Zelle
End With
End Sub


Anzeige
AW: Zelleninhalte in Register kopieren + Format
02.09.2007 19:45:19
Lemmi
Hallo Franz,
aller besten Dank für Deine Hilfe für den Code ! Hat mich sehr gefreut!
Gruß
Lemmi

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige