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

Kleines Makro

Kleines Makro
05.01.2015 09:58:55
Patrick
Hallo,
ich verwende gerne den Makro-Aufzeichner um mir die Arbeit etwas zu erleichtern.
Leider kenne ich mich mit der Programmierung an sich gar nicht aus.
Ich habe mir ein kleines Makro aufgezeichnet, damit ich Werte aus einer Tabelle (Tab1) in eine andere Tabelle (Tab2)umsortiert kopieren kann. Das funktioniert natürlich ganz einfach, da es sich immer auf die gleiche Zelle bezieht.
Ich bräuchte bloss nun eine Funktion, dass die Werte aus Tab1 immer an die nächte freie Zelle der Tab2 kopiert. Also wahrscheinlich eine If - Then Schleife, oder?
Habe ein wenig probiert, aber ich bekomme das gar nicht hin, da ich leider nicht weiß, was ich genau brauche. Vielleicht kann mir ja jemand helfen.
Besten Dank im voraus.
Viele Grüße,
Patrick

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kleines Makro
05.01.2015 10:18:13
Bernd
Hallo Patrick!
Hier ein Code aus Office-loesungen.de welchen ich gegoogelt habe:
~

Sub Kopieren()
Application.ScreenUpdating = False
Dim a
Dim b
For Each cell In Selection
a = cell.Value
Sheets("Tab2").Select
b = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If Sheets("Tab2").Range("A1") = "" Then b = 1
Sheets("Tab2").Range("A" & b).Value = a
Sheets("Tab1").Select
Next
Application.ScreenUpdating = True
End Sub
~
Einfach auf Tab1 die Daten markieren welche übertragen werden sollte und dann die Schaltfläche anklicken.
lg Bernd

Anzeige
AW: Kleines Makro
05.01.2015 12:15:33
Bernd
Hi nochmals!
probier mal so:
~

Sub BereichTransponierenUndInFreieZeileKopieren()
'Kopiert einen transponierten Bereich der Tabelle1
'in die nächste freie Zeile der Tabelle2, Spalte O3
Sheets(1).Range("C3:GS6").Copy 'Bereich anpassen
zeile = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 2
Sheets(2).Cells(zeile, 14).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub

~
lg Bernd

AW: Kleines Makro
05.01.2015 12:19:56
Bernd
oder so, noch anpassen:
~

Sub BereichTransponierenUndInFreieZeileKopieren()
'Kopiert einen transponierten Bereich der Tabelle1
'in die nächste freie Zeile der Tabelle2, Spalte A
Sheets(1).Range("C3:GS6").Copy 'Bereich anpassen
zeile = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets(2).Cells(zeile, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub
~
lg

Anzeige
AW: Kleines Makro
05.01.2015 10:19:10
Beverly
Hi Patrick,
leider kennen wir deinen Code nicht, aber hier mal eine Möglichkeit
    Dim lngLetzte As Long
With Worksheets("Tabelle2")
' letzte belegte Zeile in Spalte A der Tabelle2 ermitteln
lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
' Bereich kopieren in erste freie Zeile
Range("A1:Z1").Copy .Cells(lngLetzte + 1, 1)
End With


AW: Kleines Makro
05.01.2015 10:49:35
Patrick
Hallo, Ihr beiden,
vielen lieben Dank das Ihr helfen wollt. Sehe schon, ich muss da einiges lernen. VOr allem genauer erklären was ich genau mache.
Hier einfach mal mein Makro was ich aufgezeichnet habe:
Application.WindowState = xlMinimized
Range("C3:C6").Select
Selection.Copy
Windows("Tab1.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("O3").Select
Windows("Tab2.xls").Activate
Columns("C:D").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("C3").Select
Folgendes soll passieren:
Ich kopiere aus der Spalte C jeweils die Daten aus Zellen 3 bis 6. Danach springe in die meine andere Arbeitsmappe und kopiere die Sachen per Inhalte einfügen - Werte - Transponieren in die Zeile O (in dem Fall in O3).
Danach lasse ich die Spalten C und D löschen, damit der nächste Datensatz wieder in Spalte C steht. Die Spalte D ist nur eine Leerspalte.
Das würde ich gerne so lange machen, bis ich alle Datensätze (76) rüber kopiert habe.
Mit Eueren beiden Vorschlägen habe ich versucht das Makro anzupassen, aber das klappt leider gar nicht.
Hoffe ich konnte genauere Info liefern, was ich gerade versuche zu "verkünzeln" :-)

Anzeige
AW: Kleines Makro
05.01.2015 11:11:02
Beverly
Hi Patrick,
wie ist denn deine Ausgangstabelle genau aufgebaut? Ist immer eine Leerspalte zwischen den Spalten mit Daten? Bis zu welcher Spalte sind Daten vorhanden? Eventuell könntest du mal deine Mappe hochladen?


AW: Kleines Makro
05.01.2015 11:24:07
Patrick
Hallo, Karin,
hier mal die Version der Excel Mappe die ich benutze. Die Namen habe ich mal gelöscht:
https://www.herber.de/bbs/user/94754.xls
Es geht bis Spalte EW, also 153 Spalten. Wobei die ersten beiden ja immer bleiben.
Ich kopiere mir also C3-C6 und füge Sie in meine andere Tabelle in Spalte O ein. Das dann mit Transponieren, so das ich die Werte dann in O3, P3, Q3 und R3 stehen habe.
Also die Daten sind aufgebaut:
C3 steht die Mailadresse
C4 Anrede
C5 Vorname
C6 Nachname
Das ganze kopiere ich mir gerade von Hand, aber bei so vielen Namen (insgesamt 76 Mitglieder) werd ich da zum Hirsch. Und da ich weiß, dass ich das Ganze demnächst wieder machen kann, wäre ein Makro hilfreich :-)
Hoffe das hilft.

Anzeige
AW: Kleines Makro
05.01.2015 12:41:23
Beverly
Hi Patrick,
Sub Kopieren()
Dim lngLetzte As Long
Dim intSpalte As Integer
' Schleife über alle Spalten in Zweierschritten
For intSpalte = 3 To 201 Step 2
With Workbooks("Tab1.xls").(Worksheets("Tabelle2")  '


AW: Kleines Makro
05.01.2015 12:50:29
Rudi
Hallo,
Sub xxxx()
Dim i As Integer
Application.ScreenUpdating = False
With Workbooks("Tab2.xls").Sheets(1)
For i = 3 To .Cells(4, .Columns.Count).End(xlToLeft).Column Step 2
.Cells(3, i).Resize(4).Copy
With Workbooks("Tab1.xls").Sheets(1)
.Cells(.Rows.Count, 15).End(xlUp).Offset(1).PasteSpecial _
Paste:=xlValues, Transpose:=True
Application.CutCopyMode = False
End With
Next
End With
End Sub
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige