Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
wenn in zelle B7:B29 wert, dann übergabe
02.09.2013 19:18:54
Christian
Hallo Leute
Benutze folgenden Code:
Code:
Option Explicit

Private Sub CommandButton12_Click()
Dim lgRow As Long, Zeile As Long
Dim Zelle As Range
Dim wks As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = Sheets("Kalk. Aw")
Set wks = Workbooks("01 Kalkulation Menue02.xlsm").Sheets("Vorlagen")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
For Zeile = 7 To 29
If Cells(Zeile, 2)  "" Then
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)
End If
Next
End With
End Sub

nun habe ich folgendes Problem:
Es wird leider immer nur die letzte zeile welche einen wert hat in die externe Tabelle (wks) übertragen.
Nun sollte es so sein:
1. Schritt:
wenn erste zelle spalte 2 zeile 7 einen wert hat dann sollen folgende Werte in die Tabelle (wks) übertragen werden
Code:
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)

2. Schritt:
dann weiter zur zweiten (Zelle spalte 2 zeile 8) wenn diese einen wert hat dann sollen sich wieder die selben Werte in Tabelle (wks) übertragen jedoch diese Werte die eine Zelle (8) darunter liegen
Code:
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)

3. Schritt:
dann weiter zur dritten zelle Spalte 2 Zeile 8 usw. bis zelle Spalt 2 Zeile 29 erreicht ist dann ende!
In Tabelle (wks) tragen sich untereinander die Zeilen mit den gewünschten Werten ein welche in Spalte 2 Zeile 7 bis 29 werte enthalten. Sollte z.B die Zelle in zeile 10 leer sein wird diese nicht an die Tabelle (wks) übertragen!
Vielen Dank für die Hilfe
mfg chris

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn in zelle B7:B29 wert, dann übergabe
03.09.2013 16:11:34
fcs
Hallo Christian,
du hattest vergessen die ZielZeile (lgRow) um 1 zu erhöhen, wenn eine Quellzeile eingetragen ist.
Dadurch werden die Werte aus den vorherigen zeilen immer wieder überschrieben.
Gruß
Franz
Private Sub CommandButton12_Click()
Dim lgRow As Long, Zeile As Long
Dim Zelle As Range
Dim wks As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = Sheets("Kalk. Aw")
Set wks = Workbooks("01 Kalkulation Menue02.xlsm").Sheets("Vorlagen")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
For Zeile = 7 To 29
If Cells(Zeile, 2)  "" Then
.Cells(lgRow, 4) = wksQuell.Cells(Zeile, 2)
.Cells(lgRow, 5) = wksQuell.Cells(Zeile, 5)
.Cells(lgRow, 6) = wksQuell.Cells(Zeile, 8)
.Cells(lgRow, 7) = wksQuell.Cells(Zeile, 11)
lgRow = lgRow + 1                     'zusätzliche Zeile
End If
Next
End With
End Sub

Anzeige

414 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige