Microsoft Excel

Herbers Excel/VBA-Archiv

Bedingung für Makro | Herbers Excel-Forum


Betrifft: Bedingung für Makro von: Andreas
Geschrieben am: 26.11.2009 16:22:55

Hallo Forum,

mit eurer Hilfe habe ich folgenden Code erstellt und in ein Modul eingefügt. Dieser Code bewirkt das wenn in Spalte 11 "erledigt"steht diese Zeile auf ein anderes Arbeitsplatt kopiert wird. Wie kann man den Code ändern damit anstatt des Wortes "erledigt" mehrere Begriffe diese Bedingung erfüllen. Die Begriffe stehen auf dem Tabellenbaltt in Spalte O4 bis O10. Die Spalte 11 hat als Gültigkeit genau diese Zellen O4:O10.

Sub Erledigte()
For i = 1 To Tabelle1.[G65536].End(xlUp).Row
If Cells(i, 11) = "erledigt" Then
x = Tabelle2.[G65536].End(xlUp).Row + 1
Range(Cells(i, 1), Cells(i, 12)).Copy Tabelle2.Cells(x, 1)
Range(Cells(i, 1), Cells(i, 12)) = ""

Range("A4:M115").Select
    Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    ActiveWindow.SmallScroll Down:=-126
    Range("A4").Select
    
End If
Next i

End Sub

  

Betrifft: AW: Bedingung für Makro von: ptonka
Geschrieben am: 26.11.2009 16:30:30

Hallo Andreas,

Versuche folgendes: Die u.a. Prozedur kopierst Du vor Deine Prozedur "Erledigte"
Die "Public"-Anweisung gehört dazu !!!!!!!

Public Bedingung as string


Sub Bedingungen
   for i = 4 to 10
         Bedingung = cells(i, 15).value
         call Erledigte
next i
End Sub
Und in Deiner Prozedur "Erledigte" ersetzt Du

If Cells(i, 11) = "erledigt" Then

durch

If Cells(i, 11) = Bedingung Then

Gruß,
Ptonka


  

Betrifft: AW: Bedingung für Makro von: Andreas
Geschrieben am: 26.11.2009 16:39:49

Geht leider nicht. Es wird alles mögliche kopiert auch Zeilen in den spalte 11 leer ist.
Ist es einfacher zu sagen: wenn Spalte 11 nichtleer dann kopiere?

Der Cod sieht jetzt so aus:

Public Bedingung As String

Sub Bedingungen()
   For i = 4 To 10
         Bedingung = Cells(i, 15).Value
         Call Erledigte
Next i
End Sub

Sub Erledigte()
For i = 1 To Tabelle1.[G65536].End(xlUp).Row
If Cells(i, 11) = Bedingung Then
x = Tabelle2.[G65536].End(xlUp).Row + 1
Range(Cells(i, 1), Cells(i, 12)).Copy Tabelle2.Cells(x, 1)
Range(Cells(i, 1), Cells(i, 12)) = ""



Range("A4:M115").Select
    Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    ActiveWindow.SmallScroll Down:=-126
    Range("A4").Select
    
End If
Next i

End Sub



  

Betrifft: AW: Bedingung für Makro von: Rudi Maintaire
Geschrieben am: 26.11.2009 16:33:31

Hallo,

If Not IsError(Application.Match(Cells(i, 11), Range("O4:O11"), 0)) Then

Gruß
Rudi


  

Betrifft: AW: Bedingung für Makro von: Andreas
Geschrieben am: 26.11.2009 16:46:51

wo muss ich diese einfügen?


  

Betrifft: Hat funztn, super, Danke, owT von: Andreas
Geschrieben am: 26.11.2009 17:09:02




Beiträge aus den Excel-Beispielen zum Thema "Bedingung für Makro"