Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
216to220
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
216to220
216to220
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nur bestimmte Zellen einer Spalte kopieren

Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 16:20:37
Nicole
Hallo Leute,

mit den Anweisungen:
Do Until i = ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Value = "Ahr2" Then
Selection.EntireRow.Copy
Sheets("Hammer").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(1, 0).Select
Sheets("Auftragseingabe").Select
ActiveCell.Offset(1#).Select
iAnz = iAnz + 1
Else
ActiveCell.Offset(1, 0).Select
End If
i = i + 1
Loop

kann ich vom Blatt "Auftragseingabe die Inhalte aller Zeilen, die "Ahr2" enthalten, ins Blatt "Hammer kopieren. Klappt auch. Da "Ahr" öfter vorkommt, werden alle gefunden Zellen untereinander ins neue Blatt kopiert.

Ich möchte aber nur die Inhalte von A bis J kopieren (Zeilennr. ändern sich ja). Mit den Anweisungen:
Do Until i = ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Value = "Ahr2" Then
z = ActiveCell.Row
Range("A" & z, "J" & z).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Hammer").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("Auftragseingabe").Select
ActiveCell.Offset(1#).Select
iAnz = iAnz + 1
Else
ActiveCell.Offset(1, 0).Select
End If
i = i + 1
Loop

werden zwar auch nur die Zeilen von A:J kopiert, aber nur 1x, d.h. auch wenn "Ahr2" im Blatt "Auftragseingabe" 3x vorkommt, wird es nur 1x rüberkopiert.

Wo liegt der Fehler??

Danke im voraus
Nicole

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 16:36:22
Alfred

Hallo Nicole!

hab dein Makro ausprobiert, bei mir funktioniert's!

Gruß
Alfred

Re: Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 16:45:47
Martin Beck

Hallo Nicole,

der Code ist zwar nicht sonderlich elegant (lade Dir mal unter XlFAQ die xlBasics zum Selektieren herunter), funktioniert aber, sofern die aktive Zelle bei Start des Makros die Zelle A1 ist.

Gruß
Martin Beck

Re: Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 16:47:23
Nicole

mhh...

ich hab es auch nochmals einzeln ausgeführt (ich hab nämlich mehrere Abfragen (Ahr2, Ahr3...).
Bei mir wird wirklich nur die erste Zeile mit Ahr2 kopiert, obwohl ich im Blatt "Auftragseingabe" "Ahr2" 3x stehen habe, also eigentlich alle 3 kopiert werden müßten.

Sind bei dir mehr als eine rüberkopiert??
Danke für deine Mühe.
Nicole

Anzeige
Re: Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 16:51:54
Alfred

Es wurden alle (3) kopiert. Wo steht am Anfang deine Aktive Zelle?

Re: Nur bestimmte Zellen einer Spalte kopieren
12.02.2003 17:00:23
Nicole

in A5, da ich in den Zeilen 1-4 noch Überschriften brauche.
Hier der gesamte Code (für eine Abfrage):

Sub Hammer1()
Const Auftragseingabe = "Quelle"
Const Hammer = "Ziel"
Dim i As Integer
Dim iAnz As Integer

Application.ScreenUpdating = False
Sheets("Hammer").Activate
Range("A5").Select

Sheets("Auftragseingabe").Activate
Range("G1").Select // in Spalte G stehen die Namen

iAnz = 0
i = 0


Do Until i = ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Value = "Ahr1" Then
z = ActiveCell.Row
Range("A" & z, "J" & z).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Hammer").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("Auftragseingabe").Select
ActiveCell.Offset(1#).Select
iAnz = iAnz + 1
Else
ActiveCell.Offset(1, 0).Select
End If
i = i + 1
Loop

Sheets("Hammer").Activate


' Sortierung
Range("A5:J200").Select
Selection.sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range("B5") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Range("A5").Select

' Aufhebung der Gültigkeitsprüfung
Cells.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With

'Columns("K:L").Select
'Selection.ClearContents
Range("A5").Select

End Sub



Anzeige
Re: Nur bestimmte Zellen einer Spalte kopieren
13.02.2003 13:32:55
Alfred

Hallo Nicole!
musste gestern leider abbrechen. Hier die Lösung des Problems:

nach der Paste-Aktion im Sheet("Hammer") und Rückkehr zu Sheet("Auftragseingabe") ist die Aktive Zelle nicht mehr in Spalte G sondern in Spalte A. Klar, dass dann kein Eintrag "Ahr1" mehr gefunden wird. Übergib die aktive Zelle "G1" an eine Variable, das ist sicherer als mit der aktiven Zelle selbst zu arbeiten.

Anbei ein Lösungsvorschlag:

Sub Hammer1()
Const Auftragseingabe = "Quelle"
Const Hammer = "Ziel"

Dim z As Range 'Variable für die Zelle
Dim r As Long ' Variable für die Zeile

Application.ScreenUpdating = False
Sheets("Hammer").Activate
Range("A5").Select

Sheets("Auftragseingabe").Activate
Range("G1").Select '// in Spalte G stehen die Namen

For Each z In ActiveSheet.UsedRange.Columns(7).Cells
z.Select
If z.Value = "Ahr1" Then
r = ActiveCell.Row
Range("A" & r, "J" & r).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Hammer").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Sheets("Auftragseingabe").Select
End If
Next

End Sub

Gruß
Alfred


Anzeige

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige