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

automatisches Zeilenkopieren

automatisches Zeilenkopieren
03.12.2002 14:51:35
katina
Hallihallo Excelfreunde!

Ich möchte alle nicht zusammenhängenden Zeilen von Tabelle 3, die in der Spalte B den Wert 45 enthalten, in eine neue Tabelle 4 kopieren, natürlich ohne Lücken und möglichst automatisch.
Hier zu mein fehlgeschlagener Versuch:

Sub ZeilenKopieren()
Dim i As Integer
Dim anz0 As Integer

i = 4
anz0 = 4

Do Until i = Sheets(3).UsedRange.Rows.Count
If Sheets(3).Range("B" & i).Value = 45 Then _
Sheets(3).Range("A" & i).Select
Selection.EntireRow.Copy
i = i + 1
Sheets(4).Activate
Sheets(4).Range("A" & anz0).Select
ActiveSheet.Paste
anz0 = anz0 + 1
Loop
End Sub

Ich bedanke mich über jeden Tip!
Katina

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

Betreff
Datum
Anwender
Anzeige
Re: automatisches Zeilenkopieren
03.12.2002 16:09:09
Nepumuk
Hallo Katina,
so geht's:

Public Sub Kopieren()
    Dim zeile As Integer, ausgabezeile As Integer
    Application.ScreenUpdating = False
    ausgabezeile = 4
    Sheets(4).Select
    With Sheets(3)
        For zeile = 4 To .Range("B65536").End(xlUp).Offset(1, 0).Row
            If .Cells(zeile, 2).Value = "45" Then
                .Cells(zeile, 2).EntireRow.Copy
                ActiveSheet.Range("A" & CStr(ausgabezeile)).Select
                ActiveSheet.Paste
                ausgabezeile = ausgabezeile + 1
            End If
        Next zeile
    End With
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14

Gruß
Nepumuk

Anzeige
ohne select und activate...
03.12.2002 16:22:16
Ralf Sögel
Option Explicit
Sub kopieren_wenn_45()
Dim z As Long, lZ As Long, Z1 As Long
Dim T1 As Worksheet, T2 As Worksheet
Set T1 = Sheets("Tabelle1")
Set T2 = Sheets("Tabelle2")
z = 1
Z1 = 1
lZ = T2.[a65536].End(xlUp).Row
Do
If T2.Cells(z, 2) = 45 Then
Rows(z).Copy T1.Cells(Z1, 1)
Z1 = Z1 + 1
End If
z = z + 1
Loop While z <= lZ
End Sub
Re: ohne select und activate...
03.12.2002 16:41:29
Nepumuk
Hallo Ralf,
ich habe schon immer einen Weg gesucht wie ich select beim einfügen weglassen kann.
Danke
Nepumuk
Re: ohne select und activate...
03.12.2002 16:54:48
Ralf Sögel
Typisch, die Helfer bedanken sich, die Frager? Na ja...
Hallo Ralf!
04.12.2002 10:21:50
Katina
Hallo Ralf!

In meiner Firma wird peinlich genau darauf geachtet, dass man nur wenig im Netz ist. Deshalb melde ich mich erst heute.
Ich bedanke mich natürlich für die Deine Antwort.
Ich habe für mich auch neue Schreibmöglichkeiten in Deinem Code finden können, da ich sowieso noch nicht lange mit VBA kämpfe.
Leider funktioniert es noch nicht.
In der Zeile: If T2.Cells(z,2)=45 Then
bekomme ich immer eine Fehlermeldung der Typ stimmt nicht!
Und die Version von Nepumuck kopiert immer die gleiche Zeile.
Komisch! Oder?
Kann ich denn beim Kopieren etwas falsch machen?

Gruß
Katina

Anzeige
Hallo!
04.12.2002 10:28:54
Katina
Hallo Nepumuck!

Ich möchte mich natürlich auch bei Dir bedanken für Deine Antwort! An meinem Arbeitsplatz habe ich nicht ständig die Möglichkeit ins Netz zu gehen, deshalb antworte ich erst heute.
Ich habe Deinen Code über strg + C kopiert und eingefügt, aber das kann doch nicht der Fehler dafür sein, dass beim Ausführen des Codes immer nur die selbe Zeile kopiert wird, oder?

Gruß
Katina

Re: Hallo!
04.12.2002 11:50:35
Nepumuk
Hallo Katina,
ich habe es gerade nochmal getestet und es läuft einwandfrei. Von 10 willkürlich in Spalte B verteilten Zeilen mit dem Wert 45 und einer laufenden Nummer in Spalte A wurden all sauber in Tabelle 4 ab Zeile 4 untereinander aufgelistet. Da die Zeilen in einer Schleife von oben nach unten durchgeprüft werden kann ich mir das nicht erklären.
Gruß
Nepumuk
PS. Wenn du in Ralfs Makro die Zeile: "If T2.Cells(z,2)=45" so abänderst: "If T2.Cells(z,2).Value = 45", müsste es auch laufen.
Anzeige
Re: automatisches Zeilenkopieren
04.12.2002 12:05:43
ffdfd
ddsd
Dankeschön!!
04.12.2002 12:14:51
Katina
Hallo Nepumuk und Ralf!

Noch mal ein ganz großes Dankeschön an Euch! Es funktioniert ;-)
Ich war wohl gestern Abend einfach zu müde, um den Code richtig zu kopieren und einzufügen. Ich habe es eben noch mal ganz von vorne probiert und jetzt läufte es auch bei mir.

Danke!
Katina

Re: Hallo Ralf!
04.12.2002 12:55:52
Ralf Sögel
Freue mich, dass ich mich geirrt habe.
Kann mir das nur so erklären, dass die 45 keine Zahl ist, überprüf das mal. Kannst du mit der Funktion TYP() machen,
1 ist Zahl, 2 ist Text.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige