Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro nur ausfuehren, wenn x geaendert (teil 2)

    Betrifft: Makro nur ausfuehren, wenn x geaendert (teil 2) von: Thorsten C.
    Geschrieben am: 27.08.2003 13:35:08

    Hallo !
    vielen Dank fuer die Tips von vorhin. Aber leider funktioniert es nicht.

    Mein Problem:
    jedes mal wenn ich im Arbeitsblatt "ini" was aendere, fuehrt er ein Makro in der
    Zeile "c12" aus.

    Was muss ich eingeben, damit das Makro nur ausgefuehrt wird, wenn in
    "C12" die Zahl geaendert wird. (=> und nur in "C12" !!)
    Alle anderen Aenderungen im selben Arbeitsblatt sollen nicht beruecksichtigt werden.

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx

    Hier mal mein Modul:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    
    Dim i As Integer
      Endjahr = Sheets("ini").Cells(12, 3) 'Spalte c12 in ini
      
      If Endjahr > 1 And Endjahr <= 50 Then
    
       Sheets("Bal").Range("A:Dk").EntireColumn.Hidden = False
       For i = 18 To 115      'Spaltenindex Spalte Q bis DK
        If Sheets("Bal").Cells(2, i).Value >= Endjahr Then
           Sheets("Bal").Columns(i + 1).EntireColumn.Hidden = True
        End If
       Next i
      
      Else
        MsgBox "sorry. die nummer sollte zwischen 1 und 50 liegen"
      
      End If
     
    End Sub
    


    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Wer kann helfen ?

    Danke schon mal im voraus
    Thorsten
      


    Betrifft: AW: Makro nur ausfuehren, wenn x geaendert (teil 2) von: Beni
    Geschrieben am: 27.08.2003 15:36:44

    Hallo Thorsten,
    nur "Selection" entfernen und
    If Target:Column = 3 And Target.Row = 12 Then
    Gruss Beni

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target:Column = 3 And Target.Row = 12 Then
    Dim i As Integer
      Endjahr = Sheets("ini").Cells(12, 3) 'Spalte c12 in ini
      
      If Endjahr > 1 And Endjahr <= 50 Then
    
       Sheets("Bal").Range("A:Dk").EntireColumn.Hidden = False
       For i = 18 To 115      'Spaltenindex Spalte Q bis DK
        If Sheets("Bal").Cells(2, i).Value >= Endjahr Then
           Sheets("Bal").Columns(i + 1).EntireColumn.Hidden = True
        End If
       Next i
      End IF
      Else
        MsgBox "sorry. die nummer sollte zwischen 1 und 50 liegen"
      
      End If
     
    End Sub