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

Makro Schleife

Makro Schleife
05.09.2016 12:56:18
HAYB.
Hallo zusammen,
ich habe in einer Excel Datei zwei Sheets.
In sheet 1 ist die Spalte A mit Daten befüllt (z.B. A0001)
A0001 soll jetzt im Sheet 2 in der Spalte A1 und A2 eingefügt warden. Zusätzlich soll im sheet 2 in B1 "Schuhe" und in C1 "Größe" eingefügt werden.
Anschließend soll unter B2 "Hose" und in C2 "Marke" eingesetzt werden.
Und das ganze soll sich in einer Schleife wiederholen, sodass immer vom Sheet 1 nacheinander aus Spalte A in sheet 2 immer 2x untereinander eingesetzt werden soll. und dann wieder in Sheet 2 wieder Spalte B "Schuhe" und in C "Größe" und darunter "Hose" und in C2 "Marke" ab zeile 3 eingefügt wird.
Sheet1
Spalte A
A0001
A0002
....
Sheets 2
Spalte A Spalte B Spalte C
A0001 Schuhe Größe
A0001 Hose Marke
A0002 Schuhe Größe
A0002 Hose Marke
Wie schreibe ich das in einem Makro.
Vielen Dank für eure Hilfe

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Schleife
05.09.2016 13:14:04
JoWe
Hallo,
z.B. so
Option Explicit
Sub transfer()
Dim ze As Long
Dim ce As Range
Dim shMain As Worksheet
Dim shSubst As Worksheet
Dim myBer As Range
Set shMain = ThisWorkbook.Sheets("Tabelle1")
Set shSubst = ThisWorkbook.Sheets("Tabelle2")
Set myBer = shMain.Range("A1:A" & shMain.Cells(Rows.Count, 1).End(xlUp).Row)
ze = 1
For Each ce In myBer
If ce = "" Then Exit Sub
shSubst.Cells(ze, 1) = ce.Value
shSubst.Cells(ze, 2) = "Schuhe"
shSubst.Cells(ze, 3) = "Größe"
shSubst.Cells(ze + 1, 1) = ce.Value
shSubst.Cells(ze + 1, 2) = "Hose"
shSubst.Cells(ze + 1, 3) = "Marke"
ze = ze + 2
Next
End Sub
Gruß
Jochen
Anzeige
AW: Makro Schleife
05.09.2016 13:18:14
ChrisL
Hi
Oder so...
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For iZeile = 1 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
WS2.Cells((iZeile - 1) * 2 + 1, 1) = WS1.Cells(iZeile, 1)
WS2.Cells((iZeile - 1) * 2 + 1, 2) = "Schuhe"
WS2.Cells((iZeile - 1) * 2 + 1, 3) = "Grösse"
WS2.Cells((iZeile - 1) * 2 + 2, 1) = WS1.Cells(iZeile, 1)
WS2.Cells((iZeile - 1) * 2 + 2, 2) = "Hose"
WS2.Cells((iZeile - 1) * 2 + 2, 3) = "Marke"
Next iZeile
End Sub

cu
Chris
AW: Makro Schleife
05.09.2016 15:25:38
HAYB.
Vielen Vielen Dank euch beiden.
Ich habe den code von Chris angepasst For iZeile = 2
Es hat prima geklappt.
Nochmal vielen Dank euch beiden
Anzeige
AW: Makro Schleife
06.09.2016 13:59:20
HAYB.
Hallo zusammen,
ich habe noch eine Frage.
Ich möchte das wenn in den Zielsheet in den Spalten bereits Werte vorhanden sind das es mir die Werte aus dem Quellsheet ab der nächsten Zeile die Werte einsetzt. Es soll sozusagen eine Überprüfung stattfinden, ob bereits werte im Zielsheet drinne sind, wenn ja füge sie in der nächsten Zeile zu.
Viele Grüße
Hayb
AW: Makro Schleife
06.09.2016 14:05:36
ChrisL
Hi
Ich weiss nicht, ob ich dich richtig verstanden habe (ansonsten bitte Beispieldatei).
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, letzteZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For iZeile = 2 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Cells(iZeile, 1)) = 0 Then
letzteZeile = WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(letzteZeile, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(letzteZeile, 2) = "Schuhe"
WS2.Cells(letzteZeile, 3) = "Grösse"
WS2.Cells(letzteZeile + 1, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(letzteZeile + 1, 2) = "Hose"
WS2.Cells(letzteZeile + 1, 3) = "Marke"
End If
Next iZeile
End Sub

cu
Chris
Anzeige
AW: Makro Schleife
06.09.2016 14:14:12
HAYB.
Hi Chris,
z.B. im Zielsheet sind bereits Datensätze enthalten und wenn ich jetzt im Quellsheet neue Datensätze kopiere möchte ich beim ausführen des Makro eine Prüfung stattfinden, ob im Zielsheet Daten enthalten sind, wenn ja füge sie im Zielsheet ab der nächsten freien Zeile ein.
Cu
HAYB
AW: Makro Schleife
06.09.2016 14:17:52
HAYB.
Hi Chris,
z.B. im Zielsheet sind bereits Datensätze enthalten und wenn ich jetzt im Quellsheet neue Datensätze kopiere möchte ich beim ausführen des Makro eine Prüfung stattfinden, ob im Zielsheet Daten enthalten sind, wenn ja füge sie im Zielsheet ab der nächsten freien Zeile ein.
Cu
HAYB
Anzeige
AW: Makro Schleife
06.09.2016 14:32:19
HAYB.
Hallo chris,
wo genau muss ich was ändern, damit es im Zielsheet in Spalte B eingefügt wird.
Grüße
Hayb
AW: Makro Schleife
06.09.2016 14:56:23
ChrisL
Hi
Cells(Zeile, Spalte)
also ändere...
WS2.Cells(..., 2)
Wenn vorhanden dann neue Zeile am Ende? Und was wenn nicht vorhanden?
cu
Chris
AW: Makro Schleife
06.09.2016 18:08:46
ChrisL
habe nochmals gelesen, vielleicht so...
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, letzteZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For iZeile = 2 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
letzteZeile = WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(letzteZeile, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(letzteZeile, 2) = "Schuhe"
WS2.Cells(letzteZeile, 3) = "Grösse"
WS2.Cells(letzteZeile + 1, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(letzteZeile + 1, 2) = "Hose"
WS2.Cells(letzteZeile + 1, 3) = "Marke"
Next iZeile
End Sub

Anzeige
AW: Makro Schleife
07.09.2016 09:43:43
HAYB.
Hallo ChrisL,
leider kklappt das auch nicht. Ich habe folgendes geschrieben. Leider komme ich ins Debugger an der Stelle WS2.Cells(iws2zeile, 1) = WS1.Cells(iZeile, 1)
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long
Set WS1 = Worksheets("CommProperties")
Set WS2 = Worksheets("CommContacts")
tmp_row = 3
Do While WS2.Cells(tmp_row, 1).value ""
tmp_row = tmp_row + 1
Loop
iws2zeile = tpm_row
For iZeile = 2 To WS1.Cells(Rows.Count, 1).End(xlUp).row
If WorksheetFunction.CountIf(WS2.Columns(1), WS1.Cells(iZeile, 1)) = 0 Then
letzteZeile = WS2.Cells(Rows.Count, 2).End(xlUp).row + 1
WS2.Cells(iws2zeile, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(iws2zeile, 2) = "Schuhe"
WS2.Cells(iws2zeile, 3) = "Grösse"
WS2.Cells(iws2zeile + 1, 1) = WS1.Cells(iZeile, 1)
WS2.Cells(iws2zeile + 1, 2) = "Hose"
WS2.Cells(iws2zeile + 1, 3) = "Marke"
End If
iws2zeile = iwszeile + 1
Next iZeile
Ich Weiss auch nicht, ob ich die iZeile erhöhen muss damit es auf die nächste Zeile Springt, um die nächsten Zellen in der nächsten Zeile zu füllen.
Grüße
Anzeige
AW: Makro Schleife
07.09.2016 10:44:36
ChrisL
Hi
Mag sein, dass es keine böse Absicht war, aber meine Motivation ist nun auch im Keller. Es ist eine einfache Frage, welche sich bei klarer Formulierung (und Beispieldatei, wonach ich gefragt habe, was du aber ignoriert hast) mit einer kurzen Antwort erledigen liesse. Stattdessen beschäftigst du seit mehreren Tagen mehrere Leute. Ich klinke mich dann mal aus, lege mich auf die grüne Wiese und schaue den Schmetterlingen zu.
(btw. iws2zeile = 0 und eine Zeile "Null" gibt es nicht)
cu
Chris
Was soll das?
06.09.2016 20:02:46
KlausF
Hi,
was soll das? Du hast doch eben erst eine Lösung erhalten
und Dich dafür bedankt. Hier die Anfrage vom 2.9.:
https://www.herber.de/forum/messages/1512648.html
Fühle mich ein wenig verarscht.
Gruß
Klaus
Anzeige
AW: Was soll das?
07.09.2016 09:21:54
HAYB.
Hallo Klaus,
du must dich nicht verarscht fühlen zumindestens war das nicht meine Absicht. Ich musste doch noch ein paar Änderungen vornehmen, wo ich mir aber nicht sicher war.
Grüße
Warum zwei Threats?
07.09.2016 11:36:30
KlausF
Hi,
[ Ich musste doch noch ein paar Änderungen vornehmen ]
Wieso bleibst Du dann nicht im alten Threat und lässt den vorhandenen Code korrigieren, der im
übrigen ja schon 2 x von mir durch unvollständige Angaben Deinerseits angepasst worden ist?
Statt dessen stellst Du die gleiche unvollständige Eingangs-Frage noch einmal und lässt damit andere
noch einmal einen ablaufgleichen aber unvollständigen Code produzieren, der dann wieder angepasst
werden muss. Sorry, aber das macht wenig Sinn.
Gruß
Klaus
Anzeige
bitte keine Drohungen :-)
07.09.2016 17:28:28
MB12
Hallo Klaus,
thread = Diskussionsfaden
threat = Drohung
Gruß, Margarete
AW: bitte keine Drohungen :-)
07.09.2016 19:26:38
KlausF
Hi Margarete,
danke für Deine Aufmerksamkeit.
Das ist dem Eigenleben meines Write-Programms (TextEdit) geschuldet.
Ich war sogar extra auf einer Grammatikseite, weil ich mich dunkel
erinnern konnte, das schon einmal falsch geschrieben zu haben.
Aber diese Sausoftware (sorry) muss das wieder zurück korrigiert haben,
und beim Kopieren habe ich da natürlich nicht mehr drauf geachtet.
Naja - hat in diesem Falle wohl nicht geschadet ...
:-)
Gruß
Klaus
grins.... owT
07.09.2016 19:52:13
MB12
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige