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

ActiveCell.Row - mehrere Zeilen anwählen

ActiveCell.Row - mehrere Zeilen anwählen
Frischy1990
Guten Tag,
in meinem Makro habe ich aktuell folgenden Befehl:
lngRow = ActiveCell.Row
Das Ziel dabei ist, dass ich eine Zelle anwähle und alle Werte die in dieser Reihe stehen in eine andere Tabelle kopiert werden.
Wenn ich nun jedoch mehrere Zellen in unterschiedlichen Reihen untereinander markiere funktioniert dieser Befehl nicht.
In diesem Fall soll das Makro unterscheiden ob 1 oder mehrere Reihen gewählt wurden und anschließend bei mehreren Reihen den Prozess für jede einzelne Reihe starten.
Hat jemand eine Idee zur Umsetzung?
LG Frischy

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Selection.EntireRow
20.06.2012 09:54:19
Erich
Hi,
probier mal
Selection.EntireRow.Copy Sheets("Tabelle3").Cells(20, 1)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
AW: Selection.EntireRow
20.06.2012 10:32:14
Frischy1990
Sorry, aber es funktioniert nicht wirklich so wie ich es mir vorstelle, aber ich danke dir trotzdem für die schnelle Antwort.
Ich markiere einen Bereich und nun suche ich einen Befehl, der mir alle Spalten in diesem Bereich ausliest.
Das heißt:
wenn folgendes markiert ist (A2 : D4), oder auch (A2 :A4)... is ja egal weil mich nur die Spalte interessiert
dann soll ausgelesen werden, das Spalte 2, Spalte 3 und Spalte 4 markiert sind und dann sollen alle dieser Spalten in unterschiedliche Variablen geschrieben werden (lngrow1 = 2, lngrow2 = 3, lngrow3 = 4)
...weiterhin soll es auch funktionieren, wenn nur 1 Spalte oder auch 50 Spalten markiert sind, sodass ich danach einen Loop-Befehl für jede einzelne Spalte ablaufen lassen kann.
Ich hoffe, ich konnte mein Problem halbwegs beschreiben.
Anzeige
Spalten oder Zeilen
20.06.2012 11:12:32
Erich
Hi ,
wenn du "Spalten" oder "Reihen" schreibst, meinst du dann vielleicht Zeilen?
Spalten sind die senkrechten Dinger, über denen oben Buchstaben stehen - z. B. Spalte A
Zeilen sind die waagerechten Dinger, vor denen links Zahlen stehen - z. B. Zeile 7.
Row heißt Zeile. Spalte ist Column.
Reihen gibt es hier gar nicht.
Wenn du diese Begriffe vertauschst, macht das das Lesen nicht unbedingt leichter...
Das was du schreibst: "(lngrow1 = 2, lngrow2 = 3, lngrow3 = 4)" ist so nicht machbar.
Man weiß doch gar nicht wie viele Variablen man braucht - vielleicht lngrow4711?
Eingangs hast du geschrieben, das du die Zeilen kopieren willst.
Willst du jetzt in einem Loop (einer Schleife) mehr oder etwas anderes tun?
Wenn du nur kopieren willst, geht das mit meiner Anweisung Selection.EntireRow.Copy ...
Das gilt auch für (mit Strg) zusammengesetzte Bereiche.
Was willst du eigentlich erreichen?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Spalten oder Zeilen
20.06.2012 11:24:01
Frischy1990
Sorry, ich habe gerade den Kopf nicht wirklich frei, weil ich die ganze Zeit am probieren bin und regelrecht verzweifle.
Ich meine natürlich Zeilen.
Also folgendes, ich habe eine Tabelle in der untereinander mehrere Maschinenanlagen stehen. In den Zeilen hinter der Anlage stehen dann alle Daten zu dieser Anlage. Wenn nun das Makro gestartet wird, wird in einer anderen Excel-Datei eine Art Steckbrief dieser Anlage erstellt. Nun möchte mein Chef jedoch die Möglichkeit haben, mehrere Anlagen zu wählen und all diese sollen dann in den einzelnen Registerkarten der anderen Datei als Steckbrief erscheinen.
Kann man vllt bei einem markiertem Bereich den Index jeder Zelle die sich darin befindet auslesen?
Anzeige
das Ziel
20.06.2012 12:03:48
Erich
Hi,
ok, jetzt verstehe ich das so:
Du hast ein (funktionierendes) Makro, das für eine ausgewählte Zeile (eine Maschinenanlage) in einer anderen Mappe
einen "Steckbrief" erstellt.
Nun möchte dein Chef, dass dies auch für mehrere (auch nicht zusammenhängende) Zeilen funktioniert,
also in einer Schleife mehrere Steckbriefe angelegt werden. Habe ich das jetzt richtig verstanden?
Gibt es dabei für jede Maschinenanlage, jeden Steckbief, ein eigenes Tabellenblatt?
(So heißt das Teil, das du "Registerkarte" nennst.)
Für dich und uns wäre es praktisch, wenn wir dein jetziges Makro (in einer Beispielmappe) hätten.
Wir könnten das dann anzupasssen versuchen.
Ohne Makro und Mappe fällt uns die Hilfe und dir danach die Anpassungsarbeit viel schwerer.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: das Ziel
20.06.2012 13:07:42
Frischy1990
Hallo,
ja genau du hast es richtig verstanden!
Für den Steckbrief gibt es eine Vorlage, die für alle Anlagen gleich ist.
Allerdings würde ich die Datei ungern im Internet hochladen. Besteht die Möglichkeit dir die Datei per E-Mail zu schicken?
LG David
Profil
20.06.2012 13:50:52
Erich
Hi David,
ok, auch wenn du dabei in Kauf nehmen musst, dass nur ich helfen kann.
Meine (etwas abgewandelte) Adresse findest du bei den Profilen: https://www.herber.de/cgi-bin/profil_d.pl?value=0
(Forums-Seiten - Prfile - Profilliste)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: das Ziel
20.06.2012 16:04:34
fcs
Hallo David,
nachdem das Verwirrspiel um Zeilen/Spalten bereinigt ist und klar ist, dass die Daten der Zeile jeweils auf einem Tabellenblatt eingetragen werden sollen, hier mein modifizierte Vorschlag, den du noch ein wenig bezüglich der Dateinamen und Blattnamen und Spalten/Zelladressen anpassen muss.
Gruß
Franz
Sub CopyZeilenDaten_in_Steckbrief()
'Werte in Zeilen der selektierten Zellen in Tabellenblätter kopieren
Dim objRow
Dim wksQ As Worksheet
Dim wbkSteckbrief As Workbook, wksSteckbrief As Worksheet, wksMuster As Worksheet
Set wksQ = ActiveSheet
For Each objRow In Selection.Rows
'Zieldatei und Muster-Steckbrief festlegen
If wbkSteckbrief Is Nothing Then
Set wbkSteckbrief = Workbooks("Steckbrief.xlsx")
Set wksMuster = wbkSteckbrief.Worksheets("Muster")
End If
'Mustersteckbrief kopieren
With wbkSteckbrief
wksMuster.Copy after:=.Sheets(.Sheets.Count)
Set wksSteckbrief = .Sheets(.Sheets.Count)
End With
'Daten aus Zeile in Kopie eintragen
With wksSteckbrief
.Range("B4") = wksQ.Cells(objRow.Row, 1).Value
.Range("B8") = wksQ.Cells(objRow.Row, 2).Value
.Range("D8") = wksQ.Cells(objRow.Row, 3).Value
.Range("D12") = wksQ.Cells(objRow.Row, 4).Value
'usw.
.Name = .Range("B4").Text
End With
Next
End Sub

Anzeige
Zeilen - mehrerer selektierter Zellen kopieren
20.06.2012 10:09:38
fcs
Hallo Frischy,
hier ein Ansatz, der die kompletten Zeilen der selektierten Zellen kopiert und als Werte im Zielblatt am Ende der Liste anfügt.
Gruß
Franz
Sub CopyRows()
'Werte in Zeilen der selektierten Zellen kopieren
Dim objRow, ZeileZ As Long, ZelleL As Range
Dim wksQ As Worksheet, wksZ As Worksheet
Set wksQ = ActiveSheet
Set wksZ = Worksheets("ZielTab")
With wksZ
Set ZelleL = .UsedRange.Find(After:=.UsedRange.Cells(1, 1), _
What:="*", LookIn:=xlFormulas, lookat:=xlWhole, _
searchorder:=xlByRows, searchdirection:=xlPrevious)
If ZelleL Is Nothing Then 'Zieltabelle ist leer
ZeileZ = 0
Else
ZeileZ = ZelleL.Row
End If
Set ZelleL = Nothing
End With
For Each objRow In Selection.Rows
ZeileZ = ZeileZ + 1
wksQ.Rows(objRow.Row).Copy
wksZ.Rows(ZeileZ).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next
End Sub

Anzeige
AW: Zeilen - mehrerer selektierter Zellen kopieren
20.06.2012 10:40:29
Frischy1990
Vielen Dank! Aber die Lösung meines Problems ist es leider noch immer nicht!
Es kann auch passieren, das ein Nutzer per STRG mehrere Spalten markiert, die nicht aneinander hängen, sodass es keinen markierten Bereich gibt.

62 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige