Microsoft Excel

Herbers Excel/VBA-Archiv

VBA-Problem....

Betrifft: VBA-Problem.... von: Stefan
Geschrieben am: 06.09.2004 13:31:59

Hallo, kann mir jemand bei dem VBA-Code helfen ? Ich bekomme zwar keine Fehlermeldung aber es erscheinen auch keine eingefügten Einträge. Irgendwie stehe ich da auf dem Schlauch.

Thx

Stefan

Sub farben_test()
Set ws = Worksheets("Sheet1")
With Worksheets("Sheet1")
For i = 1 To .Cells(65535, 4).End(xlUp).Row
    Select Case Cells(i, 4)
        Case Cells(i, 4).Font.ColorIndex = 9
        Cells(i, 4).Copy Destination:=ws.Cells(i, 1)
        Case Cells(i, 4).Font.ColorIndex = 10
        Cells(i, 4).Copy Destination:=ws.Cells(i, 2)
        Case Cells(i, 4).Font.ColorIndex = 11
        Cells(i, 4).Copy Destination:=ws.Cells(i, 3)
    End Select
Next i
End With
Set ws = Nothing
End Sub

  


Betrifft: AW: VBA-Problem.... von: Gert Seler
Geschrieben am: 06.09.2004 13:42:43

Hallo Stefan,
Im VBA-Fenster sollte immer "Option explicit" im Kopf stehen, dann vergißt man
nicht die Variablen (hier "ws") zu deklarieren.
Da ich mit VBA noch nicht zurecht komme, kann ich Dir leider nicht weiterhelfen.
mfg
Gert


  


Betrifft: AW: VBA-Problem.... von: Rüdiger
Geschrieben am: 06.09.2004 13:50:39

Deine For schleife stimmt nicht.

Die Schleife soll ja von 1 bis zu letzten Zeile durchlaufen.
Also ermittle vorher die letzte Zeile in deinem Excel sheet und setzte die Zahl für den letzten Durchgang deiner Schleife ein.

Dein Makro läuft nicht durch die schleife, da er von 1 bis zu einem undefiniertem Wert läuft.

Der Ausdruck "Worksheets("Sheet1").Cells(65535,4).end(xlup).Row" ist doppelt gemoppelt.

Es reicht

Function lastr(Sheet As String, rows, columm As Integer) As Integer
    Sheets(Sheet).Select
    Cells(columm, rows).Select
    Selection.End(xlDown).Select
    lastr = ActiveCell.row
End Function



  


Betrifft: AW: VBA-Problem.... von: harry
Geschrieben am: 06.09.2004 13:51:24

hi,
.Cells(65535, 4).End(xlUp).Row ergibt 1. das heisst: deine schleife geht von 1 bis 1.
liebe grüße,
harry


  


Betrifft: AW: VBA-Problem.... von: Ingo
Geschrieben am: 06.09.2004 13:59:27

Dim ws As Object
Dim i As Integer, ci As Integer
Set ws = Worksheets("Sheet1")
With Worksheets("Sheet1")
For i = 1 To .Cells(65535, 4).End(xlUp).Row
ci = ws.Cells(i, 4).Font.ColorIndex
Select Case ci
Case 9
Cells(i, 4).Copy
ws.Cells(i, 1).Select
Selection.PasteSpecial
Case 10
Cells(i, 4).Copy
ws.Cells(i, 2).Select
Selection.PasteSpecial
Case 11
Cells(i, 4).Copy
ws.Cells(i, 3).Select
Selection.PasteSpecial
End Select
Next i
End With
mfG
Ingo Christiansen


  


Betrifft: Problem gelöst...danke an alle !!!! von: Stefan
Geschrieben am: 06.09.2004 14:12:24

Danke für die zahlreichen hinweise (und entschuldigung für die zahlreichenfehler...ist alles noch am wachsen).
Jedenfalls habe ich das Problem nun in den Begriff bekommen und es funktioniert !
Danke euch allen.