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

Makro: Selektieren, in Tabellenblatt kopieren

Makro: Selektieren, in Tabellenblatt kopieren
29.06.2005 12:30:13
Thomas
Hallo zusammen,
ich wende mich mit einem Problem an Euch. Ein umfangreiches Tabellenblatt will bearbeitet werde. Dazu habe ich mr ein Makro geschrieben.
Wenn im Tabellenblatt "Herstellungskosten" in der Spalte C in einer Zeile der Eintrag "CZK" steht, möchte ich aus dieser Zeile die Zellen der Spalten A, B und D in das Tabellenblatt "Tabelle1" kopieren. Das Makro läuft ohne Fehlermeldung durch, nur passieren tut nichts.
Makromäßig bin ich ein absolutes Greenhorn. Könnte vielleicht von Euch jemand draufschauen und mir sagen, woran es hapert?
Ich danke herzlich.
Grüße
Thomas

Sub makro()
Dim i As Long
Dim z As Long
z = 15
Sheets("Herstellungskosten").Select
For i = 1 To Range("C65536").End(xlUp).Row
If Cells(i, 3).Value = CZK Then
Cells(i, 1) = a 'hier steht Text
Cells(i, 2) = b 'hier steht eine Währung
Cells(i, 4) = c 'hier steht eine Zahl
Sheets("Tabelle1").Select
Cells(z, 2) = a
Cells(z, 3) = b
Cells(z, 5) = c
z = z + 1
End If
Next i
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Selektieren, in Tabellenblatt kopieren
29.06.2005 12:48:13
Alex
hallo!
"Dim a, b, c As String"
würde mal meinen das fehlt
"For i = 1 To Cells(Rows.count, 3).End(xlUp).Row"
und das wird ich so abändern!
grüße aus rostock
Nanana ;-))
29.06.2005 12:59:49
Harald
nur zwei wohlgemeinte Hinweise,
"Dim a, b, c As String"....deklariert nur c as string
Richtig: Dim a as string, b as string, c as string
Rows.Count ergibt immer 65536, egal in welcher Spalte (von Excel), daher sind beide Schreibweisen ok
Wie gesagt...dies nur als gutgemeinter Hinweis
Gruß
harald
AW: Nanana ;-))
29.06.2005 22:49:43
PeterW
Hallo Harald,
warum überhaupt Strings dimensionieren? Daten lassen sich doch direkt übertragen. Der Code könnte so aussehen und dürfte ohne die Selects auch schneller laufen:

Sub makro()
Dim i As Long
Dim z As Long
Dim wksZiel As Worksheet
Set wksZiel = Sheets("Tabelle1")
z = 15
With Sheets("Herstellungskosten")
For i = 1 To .Range("C65536").End(xlUp).Row
If .Cells(i, 3) = "CZK" Then
wksZiel.Cells(z, 2) = .Cells(i, 1)
wksZiel.Cells(z, 3) = .Cells(i, 2)
wksZiel.Cells(z, 5) = .Cells(i, 4)
z = z + 1
End If
Next
End With
Set wksZiel = Nothing
End Sub

Mit Rows.Count findet man in jedem Code die letzte Zeile, auch wenn MS sich mal entschließt, die Zeilenzahl von 2^16 zu erhöhen.
Auch nur wohlwollend gemeint. :-)
Gruß
Peter
Anzeige
AW: Makro: Selektieren, in Tabellenblatt kopieren
29.06.2005 12:48:24
Peter
Hallo Thomas,
setz das CZK in der Zeile
If Cells(i, 3).Value = CZK Then
mal in Anführungszeichen, also:
If Cells(i, 3).Value = "CZK" Then
Viele Grüße
Peter

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige