Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten 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)
Antworten 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
Antworten 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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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