Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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

Nur Zellen mit Text kopieren

Nur Zellen mit Text kopieren
15.06.2009 12:58:41
Peter
Hallo
ich bin gerade dabei eine Excel Tabelle zu bearbeiten und haben ein Auswahltabellenblatt wo ich über
Kontrollkästchen verschiedene Options auswählen kann, bzw noch die Anzahl angeben kann.
In einen Datentabellenblatt werden mir untereinander die Daten ausgegeben.
Das heißt im Auswahlblatt mache ich die Häckchen und gebe die Anzahl der (Heizpatronen) an und im Datenblatt schreibt er diese untereinader. Wenn ich also Adapter A1000 ankreuze und eingebe 6 Patronen dann schreibt er mit Heizpatrone 1,Heizpatrone 2,......Heizpatrone 6 angefangen in Zelle B27 untereinander.
Da es max 16 Heizpatronen gibt füllt er die letzten Felder mit 0 aus(bis zelle B42).
Bei Zelle B43 gehts weiter mit dem Adapter A1100 wenn er angewählt ist schreibt er dort auch die Anzahl der Heizpatronen rein.
Soweit so gut jetzt habe ich aber ein Tabellenblatt wo diese Texte in der gleichen Reihenfolge hinein sollen aber ohne die 0.
Wie kann ich das realisieren ?

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Zellen mit Text kopieren
15.06.2009 13:37:50
PointOfView
Hallo Peter,
lade mal eine Beispieldatei von Dir hoch.
Gruss
PointOfView (Oliver)
AW: Nur Zellen mit Text kopieren
15.06.2009 13:39:05
fcs
Hallo Peter,
du kannst in deiner Tabelle die Werte in Spalte B auf Wert 0 prüfen und abhängig vom Ergebnis die Werte in der Zeile in die andere Tabelle übertragen.
Schaut als Makro dann z.B. so aus:

Sub aaTest()
Dim wksQ As Worksheet, ZeileQ As Long
Dim wksZ As Worksheet, ZeileZ As Long
Set wksQ = Worksheets("Tabelle1")
Set wksZ = Worksheets("Tabelle2")
ZeileZ = 2 'Startzeile in Zieltabelle
With wksQ
'Zeilen in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
wksZ.Cells(ZeileZ, 1).Value = .Cells(ZeileQ, 1).Value
wksZ.Cells(ZeileZ, 2).Value = .Cells(ZeileQ, 2).Value
'ggf. weitere Werte von Tabelle1 nach tabelle 2 übertragen
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next
End With
End Sub


Gruß
Franz

Anzeige
AW: Nur Zellen mit Text kopieren
15.06.2009 14:57:26
Peter
Ist die Datei nun Downloadbar ich bin neu hier und komme noch nicht ganz zurecht.
@ Franz
könntest du mir vll kurz beschreiben wo ich diesen Makro genau rein schreiben muss ? Ich habe noch fast keine Kenntnisse und wollte mich nun ein bisschen mehr damit beschäftigen.
Danke
AW: Nur Zellen mit Text kopieren
15.06.2009 17:04:02
fcs
Hallo Peter,
das Makro kopierst du in ein allgemeines Modul der Datei im VBA-Editor
Nachfolgend das Makro nochmals etwas modifiziert mit den Tabellennamen in deiner Beispiel-Datei.
Gruß
Franz

Sub Liste_Heizungen_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long
Dim wksZ As Worksheet, ZeileZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Heizungen")
ZeileZ = 9 'Startzeile in Zieltabelle
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
If ZeileZ > 44 Then
MsgBox "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!"
Exit For
End If
'in Spalte 1 den Wert aus Spalte 1 eintragen
wksZ.Cells(ZeileZ, 1).Value = .Cells(ZeileQ, 1).Value
'in Spalte 2 den Wert aus Spalte 2 eintragen
wksZ.Cells(ZeileZ, 2).Value = .Cells(ZeileQ, 2).Value
'ggf. weitere Werte von Tabelle1 nach tabelle 2 übertragen
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next
End With
End Sub


Anzeige
AW: Nur Zellen mit Text kopieren
15.06.2009 18:40:56
Peter
Hallo Franz
soweit habe ich deinen Anleitung übernommen ich habe
1. recht Klick auf das Tabellenblat (Deckblatt) gemacht und Code anzeigen geklickt.
2. über Menü Einfügen Modul ausgewählt und dort deinen Kompletten Marko von (

Sub Liste_Heizungen_erstellen() bis End Sub

) eingefügt.
3. Gespeichert und geschlossen dann alles wieder geöffnet und nix passiert.
Muss ich vll noch ürgendwas anderes Betätigen oder Einstellen ?
Sorry wenn ich vll einfach zu blöd bin ^^
Gruß Peter

AW: Nur Zellen mit Text kopieren
16.06.2009 12:56:32
fcs
Hallo Peter,
nachdem du deine Eingaben im Blatt Auswahl gemacht hast muss du das Makro starten. Dann werden die Daten übertragen.
Für einfachere Bedienung kannst du dir auch aus der Symbolleiste "Formular" ein Schaltfläche im Blatt einbauen und das Makro der Schaltfläche zuweisen.
Gruß
Franz
Anzeige
AW: Nur Zellen mit Text kopieren
16.06.2009 14:39:05
Peter
Vielen Dank Franz,
habe es gleich ausprobiert und hat wunderbar funktioniert.
Jetzt bin ich so davon begeistert das ich gerne noch weiter führen würde.
Wäre es vll auch möglich die Spalten A bis G von Daten in Heizungen zu kopieren ? nach dem selbem schema auf null überprüfen und dann wenn eine null vorhanden ist den rest aufrücken ?
Gruß Peter
AW: Nur Zellen mit Text kopieren
16.06.2009 17:37:49
fcs
Hallo Peter,
möglich ist vieles. Es müssen nur die Vorgaben klar sein. Hoffe habe dich richtig verstanden.
Wenn in Spalte B einer Zeile der Wert ungleich 0, dann aus dieser Zeile die Werte der Spalten A bis G übertragen.
Gruß
Franz

Sub Liste_Heizungen_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long, Spalte As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Heizungen")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
If ZeileZ > 44 Then
MsgBox "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!"
Exit For
End If
'in Spalte 1 bis 7 (A bis G) die Werte aus Spalte 1 bis 7 (A bis G) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 1 To 7
'If .Cells(ZeileQ, SpalteQ).Value  0 Then
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'End If
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Nur Zellen mit Text kopieren
16.06.2009 22:57:53
Peter
Also ich hätte da noch etwas wenn es dir nix ausmacht mir noch mal die passenden Makros dafür zu schreiben?
Ich habe leider einen Fehler gemacht ich müsste den makro so haben das er nur die spalten A bis D in Heizungen über trägt udn nicht A bis G , und genau so einen makro brauche der die spalten G bis K ab zeile 27 von Daten in Antriebe überträgt und genau so die Zellen mit einer Null nicht kopiert wie bei den Heizungen.
Und hast du vll eine Idee wenn ich zu viele Einträge hab sagt Excel mir "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!" kann man vll automatisch dann ein neues tabellenblatt anlegen lassen was genau so die form vom tabellen blatt heizungen hat?
wenn ich noch weitere Probleme habe (können eig nicht mehr viele sein;)) kann ich mich dann noch mal melden ? Das wäre echt Prima ohne deine Hilfe wäre ich glaub ich schon am verzweifeln
Danke schon mal Gruß Peter
Anzeige
AW: Nur Zellen mit Text kopieren
17.06.2009 12:59:33
fcs
Hallo Peter,
den 1. Teil (nur Spalten A bis D übertragen) hättest du mit etwas Code-Studium doch wohl auch selbst hinbekommen können.
Für Übertragen der Antriebsdaten hab ich dir eine ähnliche Prozedur erstellt, die aus den Spalten G bis K die Daten überträgt, dabei wird Spalte G auf 0-Werte geprüft.
Zu wenig Zeilen:
Ich würde einfach zusätzlich Zeilen vor den Summenzeilen einfügen. Ich hab das in den Prozeduren momentan auch mal so eingebaut. Damit der Ausdruck manierlich wird muss du für die beiden Tabellenblätter Heizungen und Antriebe unter Menü Datei-Seite einrichten noch Wiederholungszeilen einrichten.
Die Liste auf einem 2. Tabellenblatt fortzusetzen macht das Ganze doch relativ kompliziert (z.B. Leistungs-Summenformeln)
Gruß
Franz

Sub Liste_Heizungen_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long, Spalte As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Heizungen")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
If ZeileZ > 43 Then
'zusätzliche Zeile einfügen
wksZ.Rows(ZeileZ).Insert Shift:=xlShiftDown
'          MsgBox "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!" _
& vbLf & "Es wird eine Zeile eingefügt!"
'          Exit For
End If
'in Spalte 1 bis 4 (A bis D) die Werte aus Spalte 1 bis 4 (A bis D) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 1 To 4
'If .Cells(ZeileQ, SpalteQ).Value  0 Then
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'End If
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub
Sub Liste_Antriebe_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long, Spalte As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Antriebe")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G37) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(37, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte G auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 7).End(xlUp).Row
If .Cells(ZeileQ, 7)  0 Then
If ZeileZ > 36 Then
'zusätzliche Zeile einfügen
wksZ.Rows(ZeileZ).Insert Shift:=xlShiftDown
'          MsgBox "Es sind nicht genug Zeilen frei um alle Antriebe einzutragen!" _
& vbLf & "Es wird eine Zeile eingefügt!"
'          Exit For
End If
'in Spalte 1 bis 5 (A bis E) die Werte aus Spalte 7 bis 11 (G bis K) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 7 To 11
'If .Cells(ZeileQ, SpalteQ).Value  0 Then
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'End If
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Nur Zellen mit Text kopieren
17.06.2009 17:29:57
Peter
Hey ja also das Problem ist eig ich benutze diese Liste auf der Arbeit und diese Datei wird dann in eine PDF gedruckt und wenn es vorkommt das wir mehr heizungen haben als auf die seite passen nehmen wir einfach ein neues blatt aber das is höchst selten deswegen ist es auch okay wenn es nur so geht das halt diese meldung kommt , wenn das zu viel arbeit ist.
Also wäre sehr nett wenn du mir das vll noch mal ändern könntest so das er die liste nicht verlängert sondern wieder diese meldung kommt.
Und nun habe ich da ein Problem das ich den Strom bei den Heizungen immer nur in 2 Zellen eintragen muss also z.B. nur in L1 und L2 oder halt in L1 und L3 oder L2 und L3. wofür ich aber schon auf der ersten seite jeweils eine auswahl gemacht habe hättest du vll eine idee wie ich das hin bekomme, wenn ich in einer zelle im daten blatt den strom errechnen lasse.
Es würde so aussehen wenn ich von der Heizung A1000 2 Patronen habe würde ich den Strom je Patrone ausrechnen lassen udn der müsste dann halt in den 2 ausgewählten zellen (L1 / L2 / L3) herein geschreiben werden und in der anderen zelle dürfte nix stehen also auch keinen null und das müsste halt mit allen heizungen passieren.
Danke Peter
Anzeige
AW: Nur Zellen mit Text kopieren
18.06.2009 13:11:20
fcs
Hallo Peter,
ein 2. Blatt auszufüllen ist kein Hexenwerk. Ich halte die Lösung halt nicht für besonders elegant.
Ich hab das Makro mal so angepasst, dass bei Bedarf ein 2. Blatt ausgefüllt wird. Dazu muss du in der datei eine Kopie des Blatts "Heizungen" anlegen und ihm den Namen "Heizungen2" geben. Gleiches für das Blatt "Antriebe". Die Summenformeln in den beiden Blättern muss du dann ggf. anpassen.
Eine PDF-Datei kann man in Excel ja auch über mehrere Seiten erstellen, wenn nötig. Dabei könnte man auch per Makro mit Ein- bzw. Ausblenden von Zeilen arbeiten, um 1 bzw. 2 Seiten zu drucken.
Das Verteilen der Strom-Daten auf die richtigen Spalten ist auch möglich. Dazu muss du die Information zur gewählten Schaltungsart per Formel ebenfalls im Blatt Daten in jeder Zeile erzeugen. Ähnlich wie die Heizungsart, wobei du dann zunächst die Option Buttons mit Zellen verlinken muss. Die Makro_Variante für das Blatt Heizungen zeigt dann die Anpassungen im Makro, wobei die Schaltungsart im Blatt Daten dann jewils in Spalte E und die Stromstärke in Spalte F steht - Spalten ggf. anpassen.
Gruß
Franz

Sub Liste_Heizungen_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long, SpalteQ As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Heizungen")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
If ZeileZ > 44 Then
'2. Blatt ausfüllen
MsgBox "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!" _
& vbLf & "Es wird das Blatt ""Heizungen2"" auch ausgefüllt!"
ZeileZ = 9 'Startzeile 2. Blatt
Set wksZ = Worksheets("Heizungen2")
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
End If
'in Spalte 1 bis 4 (A bis D) die Werte aus Spalte 1 bis 4 (A bis D) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 1 To 4
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub
Sub Liste_Antriebe_erstellen()
Dim wksQ As Worksheet, ZeileQ As Long, SpalteQ As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Antriebe")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G37) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(37, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte G auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 7).End(xlUp).Row
If .Cells(ZeileQ, 7)  0 Then
If ZeileZ > 37 Then
'2. Blatt ausfüllen
MsgBox "Es sind nicht genug Zeilen frei um alle Antriebe einzutragen!" _
& vbLf & "Es wird das Blatt ""Antriebe2"" auch ausgefüllt!"
ZeileZ = 9 'Startzeile 2. Blatt
Set wksZ = Worksheets("Antriebe2")
With wksZ
'Alt-Daten (Bereich A9:G37) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(37, 7)).ClearContents
End With
End If
'in Spalte 1 bis 5 (A bis E) die Werte aus Spalte 7 bis 11 (G bis K) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 7 To 11
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub
'Makro Variante
Sub Liste_Heizungen_erstellen_Var()
Dim wksQ As Worksheet, ZeileQ As Long, SpalteQ As Long
Dim wksZ As Worksheet, ZeileZ As Long, SpalteZ As Long, strSchaltung As String
'Tabelle mit Quell-Daten
Set wksQ = Worksheets("Daten")
'Zieltabelle
Set wksZ = Worksheets("Heizungen")
ZeileZ = 9 'Startzeile in Zieltabelle
Application.ScreenUpdating = False
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
With wksQ
'Zeilen ab Zeile 27 in Spalte B auf 0 prüfen
For ZeileQ = 27 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(ZeileQ, 2)  0 Then
If ZeileZ > 44 Then
'2. Blatt ausfüllen
MsgBox "Es sind nicht genug Zeilen frei um alle Heizungen einzutragen!" _
& vbLf & "Es wird das Blatt ""Heizungen2"" auch ausgefüllt!"
ZeileZ = 9 'Startzeile 2. Blatt
Set wksZ = Worksheets("Heizungen2")
With wksZ
'Alt-Daten (Bereich A9:G44) löschen in Zieltabelle
.Range(.Cells(ZeileZ, 1), .Cells(44, 7)).ClearContents
End With
End If
'in Spalte 1 bis 4 (A bis D) die Werte aus Spalte 1 bis 4 (A bis D) eintragen
SpalteZ = 1 'Spalte ab der in Zieltabelle die Werte in jeder Zeile eingetragen _
werden sollen.
'Werte per Schleife eintragen
For SpalteQ = 1 To 4
wksZ.Cells(ZeileZ, SpalteZ).Value = .Cells(ZeileQ, SpalteQ).Value
'Spaltenzähler für Zieltabelle um 1 erhöhen für nächsten Wert in Zeile
SpalteZ = SpalteZ + 1
Next SpalteQ
'Wert für Schaltung eintragen
'Schaltungsart aus Daten Spalte E(5) auslesen
strSchaltung = .Cells(ZeileQ, 5).Value
'Stromstärke aus Daten Spalte F (6)in entsprechende Spalte(n) eintragen
Select Case strSchaltung
Case "L1 L2"
wksZ.Cells(ZeileZ, 5).Value = .Cells(ZeileQ, 6).Value
wksZ.Cells(ZeileZ, 6).Value = .Cells(ZeileQ, 6).Value
Case "L1 L3"
wksZ.Cells(ZeileZ, 5).Value = .Cells(ZeileQ, 6).Value
wksZ.Cells(ZeileZ, 7).Value = .Cells(ZeileQ, 6).Value
Case "L2 L3"
wksZ.Cells(ZeileZ, 6).Value = .Cells(ZeileQ, 6).Value
wksZ.Cells(ZeileZ, 7).Value = .Cells(ZeileQ, 6).Value
Case Else
'do nothing
End Select
'Zeilenzähler für Zieltabelle um 1 erhöhen für nächsten Eintrag
ZeileZ = ZeileZ + 1
End If
Next ZeileQ
End With
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Nur Zellen mit Text kopieren
19.06.2009 11:04:02
Peter
Guten Morgen Franz
habe soweit alles hinbekommen funktioniert auch wunderbar.
Ich habe auch selber ein bisschen verändert
Bei der auswahl der zellen für den strom habe ich hinter case else
wksZ.Cells(ZeileZ, 5).Value = .Cells(ZeileQ, 6).Value
wksZ.Cells(ZeileZ, 6).Value = .Cells(ZeileQ, 6).Value
wksZ.Cells(ZeileZ, 7).Value = .Cells(ZeileQ, 6).Value
eingefügt damit wenn nichts angewählt werden kann die ströme in allen steht.
Ich habe versucht das selbe für die antriebe hin zu bekommen aber es funktionierte nicht denn bei den antrieben wie ich heute erfahren habe gibt es auch welche die nur über 2 außenleiter angesteuert werden.
könntenst du mir vll noch mal helfen :)
außerdem wäre es gut wenn auch auf der 2 seite der heizungen und antriebe jedesmal vor dem neuen hineinkopieren alles gelöscht werden würde so wie es auf seite 1 der heizungen und antriebe passiert.
gruß peter
Anzeige
AW: Nur Zellen mit Text kopieren
19.06.2009 12:06:32
fcs
Hallo Peter,
in der hochgeladenen Textdatei findest du den angepassten Code. Die Alt-Daten in den 2. Blättern werden jetzt vor denen im 1. Blatt gelöscht.
In der Variante für die Antriebe muss du die Spalten-Nummern und erläuternden Texte ggf. an den Aufbau der Tabelle "Daten" anpassen.
Gruß
Franz
https://www.herber.de/bbs/user/62570.txt
AW: Nur Zellen mit Text kopieren
19.06.2009 15:07:21
Peter
Ich bins noch mal :)
anscheind bin ich noch nicht so richtig hinter diesen ganzen ausdrücke gekommen.
ich habe es versucht aber nicht hin bekommen die Daaten tabelle anzu passen.
Ich habe meine schaltungs art in der spalte K ab zeile 27 und den strom in spalte l ab zeile 27 könntest du vll noch mal ^:) danke
gruß peter
AW: Nur Zellen mit Text kopieren
19.06.2009 18:11:24
fcs
Hallo Peter,
hier dann nochmals die Prozedur für die Antriebe.
Die Werte aus Daten Spalte G bis J werden im Blatt Antrieb in die Spalte A bis D eingetragen.
Die Spannungsart in Spalte K wird ausgewertet (in der Select-Anweisung) und Stromstärke aus Spalte L in die Spalten 5 und/oder 6 und/oder 7 eingetragen.
Gruß
Franz
https://www.herber.de/bbs/user/62580.txt
AW: Nur Zellen mit Text kopieren
15.06.2009 14:58:14
Peter
Ist die Datei nun Downloadbar ich bin neu hier und komme noch nicht ganz zurecht.
@ Franz
könntest du mir vll kurz beschreiben wo ich diesen Makro genau rein schreiben muss ? Ich habe noch fast keine Kenntnisse und wollte mich nun ein bisschen mehr damit beschäftigen.
Danke
AW: Nur Zellen mit Text kopieren
15.06.2009 15:01:19
Peter
Ist die Datei nun Downloadbar ich bin neu hier und komme noch nicht ganz zurecht.
Franz:
könntest du mir vll kurz beschreiben wo ich diesen Makro genau rein schreiben muss ? Ich habe noch fast keine Kenntnisse und wollte mich nun ein bisschen mehr damit beschäftigen.
Danke

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige