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

Forumthread: 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

Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige