Makro mit Schleife
#1
Hallo zusammen,

ich komme gerade nicht weiter eventuell könnt Ihr ja helfen.
Ich habe eine Arbeitsmappe mit zwei Arbeitsblättern ("Eingabe" und "Ausgabe"). Wenn im Tabellenblatt "Eingabe" in Spalte (ab) G3 ein Wert stehen, sollen folgende Spalten in das Tabellenblatt "Ausgabe" kopiert werden.

zB. Spate A1, E1, F1 und G1 in das Tabellenblatt " Ausgang"  A1, B1, C1, D1. 

Die Überschrift im Blatt sollte dann Auswertung Stunden Monat Abschnitt 1 lauten.

Ist dies möglich?

Vielen Dank für Eure Hilfe und einen schönen Sonntag noch.

VG Mario


Angehängte Dateien
.xlsm   Einsatz_SR.xlsm (Größe: 70,99 KB / Downloads: 4)
Top
#2
Hallöchen,

G3, A1, E1 usw. sind nur Zellen und keine Spalten Sad Das Kopieren kann man einfach mit dem Makrorekorder aufzeichnen, die Überschrift auch.

AM Anfang vom aufgezeichneten Makro kannst Du dann noch eine Bedingung schreiben, z.B.

If [G3] = "" Then Exit Sub

Das sorgt dafür, dass das Makro nicht ausgeführt wird, wenn in G3 nix steht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo Andre,

vielen Dank für deine schnelle Antwort Smile.
Es sollen natürlich immer die entsprechenden Zellen aus der dazugehörigen Zeile kopiert werden. Also steht in G5 etwas sollen auch die dazugehörigen Zellen aus Zeile 5 kopiert werden.
Dies bekomme ich soweit auch hin, doch dann habe ich auf dem Zielarbeitsblatt leere Zeilen, die ich verhindern wollte,

VG Mario
Top
#4
Hallo Mario,

stellt sich für mich die Frage, warum du die Daten nicht gleich (und ausschließlich) in dein "Zielarbeitsblatt" schreibst. Das würde spätere Auswertungen enorm erleichtern. Das würde dann etwa so aussehen:

Ausgabe

ABCDE
1DatumWochentagMitarbeiterStundenObjekt
201.10.2017SonntagKlaus8Garage
302.10.2017MontagHolger3Tennisclub
402.10.2017MontagDennis4Garten

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#5
Hallo Klaus Dieter,

hätte ich auch so gemacht, aber der Ursprung (das Tabellenblatt) wird versteckt, so das die Originaldaten nicht eingesehen oder geändert werden können.

Ich habe bis jetzt die, leider wird hier immer nur der erste Datensatz kopiert Smile und kein weiterer.


Code:
Option Explicit


Sub DatenKopieren()
Dim i As Integer


For i = 1 To 157

   If Worksheets("Eingabe").Cells(i, 5).Value <> "" Then
      Worksheets("Eingabe").Range("A1").Copy Destination:=Sheets("Ausgabe").Range("A2")
      Worksheets("Eingabe").Range("E2").Copy Destination:=Sheets("Ausgabe").Range("B2")
      Worksheets("Eingabe").Range("F2").Copy Destination:=Sheets("Ausgabe").Range("C2")
      Worksheets("Eingabe").Range("G2").Copy Destination:=Sheets("Ausgabe").Range("D2")
   End If
Next i


End Sub
Top
#6
Danke an alle, habe es jetzt hinbekommen.

VG Mario


Code:
Sub DatenKopieren()

Dim i As Integer
Dim x As Integer

x = 2
For i = 3 To 157

   If Cells(i, 6).Value <> "" Then
       Cells(i, 6).Copy
       Worksheets("Ausgabe").Cells(x, 2).PasteSpecial xlValues
       Cells(i, 3).Copy
       Worksheets("Ausgabe").Cells(x, 1).PasteSpecial xlValues
       Cells(i, 5).Copy
       Worksheets("Ausgabe").Cells(x, 3).PasteSpecial xlValues
       Cells(i, 7).Copy
       Worksheets("Ausgabe").Cells(x, 4).PasteSpecial xlValues
       
       x = x + 1

   End If
      Next i

End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste