Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich links neben aktiver Zelle kopieren

Forumthread: Bereich links neben aktiver Zelle kopieren

Bereich links neben aktiver Zelle kopieren
25.02.2004 07:46:20
AndreasS
Morgen,
gibt es mit VBA eine Möglichkeiten eine Bereich links neben der aktiven Zelle zu kopieren.
Also wie entirerow - activerzelle.select oder oo was...
Gruß und danke...
Andreas
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich links neben aktiver Zelle kopieren
25.02.2004 08:05:19
Galenzo
Hallo Andreas,
Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy
sollte dir da weiterhelfen.
Funktioniert natürlich nicht in Spalte A (wegen -1) - das solltest du vorher also noch abfangen...
mfg
Danke :-)
25.02.2004 08:14:16
AndreasS
Danke für die schnelle Hilfe!
Gruß Andreas
Hilft mir leider nichts...
25.02.2004 08:20:48
AndreasS
...oder bin ich nur zu blöd?
Hier mal das Makro:

Sub Kopie_Bereich()
Dim iRow%
Dim i$
Dim rzelle As Range
Dim rTestRange As Range
Set rTestRange = Sheets("Kopien").[q1:q8]
For Each rzelle In rTestRange.Cells
Sheets("Daten").Activate
With Worksheets("Daten").Range("Q1:Q10")
Set c = .Find(rzelle, LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Set c = .FindNext(c)
c.Select
With Sheets("Kopien")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy Worksheets("Kopien").Rows(iRow)
End With
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
Next rzelle
End Sub

Über jede Hilfe bin ich dankbar.
Gruß Andreas
Anzeige
AW: Hilft mir leider nichts...
25.02.2004 08:22:34
Galenzo
wat wilst du damit denn machen?
AW: Hilft mir leider nichts...
25.02.2004 08:28:45
AndreasS
Hi,
ich möchte im Bereich p1:p8 auf Tabellenblatt Kopien einen Wert suchen in Tabelle Daten Spalte Q. Dann A-P aus Daten kopieren in Kopien.
Fehler in Makro, so muss es heißen:

Sub Kopie_Bereich()
Dim iRow%
Dim i$
Dim rzelle As Range
Dim rTestRange As Range
Set rTestRange = Sheets("Kopien").[p1:p8]
For Each rzelle In rTestRange.Cells
Sheets("Daten").Activate
With Worksheets("Daten").Range("Q1:Q10")
Set c = .Find(rzelle, LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Set c = .FindNext(c)
c.Select
With Sheets("Kopien")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy Worksheets("Kopien").Rows(iRow)
End With
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
Next rzelle
End Sub

Danke für deine Hilfe...
Anzeige
AW: Hilft mir leider nichts...
25.02.2004 08:33:37
Galenzo
Ändere mal die Zeile so:
Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy Worksheets("Kopien").Cells(iRow, 1)
Paßt das?
Ja, das paßt! :-)
25.02.2004 08:41:49
AndreasS
Danke nochmals für deine Hilfe, da wäre ich alleine so schnell nicht draufgekommen...
Gruß Andreas

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bereich links neben der aktiven Zelle kopieren mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Einfügen > Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Kopie_Bereich()
       Dim iRow%
       Dim rzelle As Range
       Dim rTestRange As Range
       Set rTestRange = Sheets("Kopien").[p1:p8]
       For Each rzelle In rTestRange.Cells
           Sheets("Daten").Activate
           With Worksheets("Daten").Range("Q1:Q10")
               Set c = .Find(rzelle, LookIn:=xlValues)
               If Not c Is Nothing Then
                   firstaddress = c.Address
                   Do
                       Set c = .FindNext(c)
                       With Sheets("Kopien")
                           iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                           Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy Worksheets("Kopien").Cells(iRow, 1)
                       End With
                   Loop While Not c Is Nothing And c.Address <> firstaddress
               End If
           End With
       Next rzelle
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Entwicklertools > Makros > Kopie_Bereich > Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objektdefinierungsfehler"

    • Lösung: Stelle sicher, dass die benannten Blätter ("Daten" und "Kopien") existieren und die Zellenbereiche korrekt sind.
  • Fehler: "Fehler beim Kopieren des Bereichs"

    • Lösung: Überprüfe, ob der Bereich links neben der aktiven Zelle nicht in Spalte A liegt, da dort kein Bereich zum Kopieren existiert.

Alternative Methoden

Falls Du keinen VBA-Code verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  • Formeln: Verwende die Funktion =LINKS(A1;LÄNGE(A1)-1), um den Text links neben der aktiven Zelle zu extrahieren. Diese Methode ist jedoch manuell und weniger flexibel.

  • Excel-Add-Ins: Es gibt verschiedene Add-Ins, die erweiterte Funktionen für das Kopieren von Zellen bieten. Diese können eine benutzerfreundliche Oberfläche zur Verfügung stellen.


Praktische Beispiele

  • Beispiel 1: Wenn Du den Bereich links von der Zelle B2 kopieren möchtest, achte darauf, dass Dein Makro korrekt auf die aktive Zelle verweist. Die Zeile Range(Cells(ActiveCell.Row, 1), ActiveCell.Offset(0, -1)).Copy sorgt dafür, dass der Bereich A2 kopiert wird.

  • Beispiel 2: Wenn Du mehrere Zellen in einem Bereich (z.B. P1:P8) durchsuchst, kannst Du den Inhalt von Spalte A bis P in das Blatt "Kopien" übertragen.


Tipps für Profis

  • Optimierung des Codes: Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während des Makros zu deaktivieren, was die Ausführung beschleunigt.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme zu vermeiden. Beispiel:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Kann ich das Makro auf andere Bereiche anpassen? Ja, Du kannst die Bereiche in Set rTestRange = Sheets("Kopien").[p1:p8] und Range("Q1:Q10") nach Deinen Bedürfnissen anpassen.

2. Was mache ich, wenn das Makro nicht funktioniert? Überprüfe die Blattnamen und Zellenbereiche. Stelle sicher, dass Du das Makro in einer unterstützten Excel-Version ausführst (z.B. Excel 2016 oder neuer).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige