Microsoft Excel

Herbers Excel/VBA-Archiv

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

Hilfe beim Makro? | Herbers Excel-Forum


Betrifft: Hilfe beim Makro? von: Meier
Geschrieben am: 18.01.2012 12:14:54

Hallo zusammen.

Ich habe mir folgendes Makro geschrieben. Leider komme ich nicht mehr weiter. Ich möchte im gleichen Makro noch einen zweiten Bereich formatieren.

Bereich 1: ("k14:v62")
Bereich 2: ("BH14:BS62")

Beim Bereich 1: wären die plus 10 richtig jedoch stimmt dies dann nicht mehr für bereich 2.

Gibt es eine Lösung, damit ich diese plus 10 nicht habe oder irgend eine andere Variante?

________________________________________________________________________

Sub Quartal_Formatierung_Monate()
    Dim sSheet As Variant, iQuartal As Integer, c As Range
    iQuartal = Sheets("Steuerung").Range("A1")
    Application.ScreenUpdating = False
    For Each sSheet In Array("Sheet1", "Sheet1", "Sheet2")
    
        With Sheets(sSheet)
            For Each c In Sheets(sSheet).Range("k14:v62").Cells
                With c
                
                    If .Column < iQuartal + 10 Then
                        .Font.Bold = False
                        .HorizontalAlignment = xlRight
                        With .Font
                            .ColorIndex = xlAutomatic
                            .TintAndShade = 0
                        End With
                        
                    ElseIf .Column = iQuartal + 10 Then
                        .Font.Bold = True
                        .HorizontalAlignment = xlRight
                        With .Font
                            .ColorIndex = xlAutomatic
                            .TintAndShade = 0
                        End With
                        
                    Else
                        .Font.Bold = False
                        .HorizontalAlignment = xlCenter
                        With .Font
                            .Color = -7303024
                            .TintAndShade = 0
                            .Bold = False
                        End With
                        
                    End If
                    
                    .VerticalAlignment = xlBottom
                    .WrapText = True
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                    
                    If .Row = 14 Then .HorizontalAlignment = xlCenter
                                        .VerticalAlignment = xlCenter
                    
                End With
            Next c
        End With
    Next sSheet
    Application.ScreenUpdating = True
    
    MsgBox "Fertig"

End Sub
____________________________________________________________________

VIelen Dank für die Hilfe

  

Betrifft: AW: Hilfe beim Makro? von: Rudi Maintaire
Geschrieben am: 18.01.2012 12:27:55

Hallo,
die 10 also = 0?

Sub Quartal_Formatierung_Monate()
    Dim sSheet As Variant, iQuartal As Integer, c As Range
    iQuartal = Sheets("Steuerung").Range("A1")
    Application.ScreenUpdating = False
    For Each sSheet In Array("Sheet1", "Sheet1", "Sheet2")
    
        With Sheets(sSheet)
            For Each c In .Range("k14:v62,bh14:bs62").Cells
                With c
                
                    If .Column < iQuartal + 10 * .Column <= 22 Then
                        .Font.Bold = False
                        .HorizontalAlignment = xlRight
                        With .Font
                            .ColorIndex = xlAutomatic
                            .TintAndShade = 0
                        End With
                        
                    ElseIf .Column = iQuartal + 10 * .Column <= 22 Then
                        .Font.Bold = True
                        .HorizontalAlignment = xlRight
                        With .Font
                            .ColorIndex = xlAutomatic
                            .TintAndShade = 0
                        End With
                        
                    Else
                        .Font.Bold = False
                        .HorizontalAlignment = xlCenter
                        With .Font
                            .Color = -7303024
                            .TintAndShade = 0
                            .Bold = False
                        End With
                        
                    End If
                    
                    .VerticalAlignment = xlBottom
                    .WrapText = True
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                    
                    If .Row = 14 Then .HorizontalAlignment = xlCenter
                                        .VerticalAlignment = xlCenter
                    
                End With
            Next c
        End With
    Next sSheet
    Application.ScreenUpdating = True
    
    MsgBox "Fertig"

End Sub

Gruß
Rudi


  

Betrifft: AW: Hilfe beim Makro? von: Meier
Geschrieben am: 18.01.2012 13:22:42

vielen dank für die antwort.

ich habe in den bereich je, januar bis dezember stehen. a1 ist immer der aktuelle monat.
januar fängt beim ersten bereich erst ab spalte 11 an, darum plus die 10.

für den zweiten bereich sollte es genau gleich sein, jedoch müsste für den zweoten bereich plus 59 stehen.

ich hoffe ihr versteht meine antwort, ist nicht ganz leicht dies zu erklären.

da beste wär, wenn er die spalte k als null betrachtet und die spalte bh.

vielen dank

gruss marco


  

Betrifft: AW: Hilfe beim Makro? von: Rudi Maintaire
Geschrieben am: 18.01.2012 14:01:46

Hallo,
dann so:

Sub Quartal_Formatierung_Monate()
  Dim sSheet As Variant, iQuartal As Integer, c As Range
  Dim iOffset As Integer
  iQuartal = Sheets("Steuerung").Range("A1")
  Application.ScreenUpdating = False
  For Each sSheet In Array("Sheet1", "Sheet1", "Sheet2")
    
    With Sheets(sSheet)
      For Each c In .Range("k14:v62,bh14:bs62").Cells
        With c
          If .Column < 23 Then iOffset = 10 Else iOffset = 59
          Select Case .Column
            Case Is < iQuartal + iOffset
              .Font.Bold = False
              .HorizontalAlignment = xlRight
              With .Font
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
              End With
              
            Case .Column = iQuartal + iOffset
              .Font.Bold = True
              .HorizontalAlignment = xlRight
              With .Font
                .ColorIndex = xlAutomatic
                .TintAndShade = 0
              End With
              
            Case Else
              .Font.Bold = False
              .HorizontalAlignment = xlCenter
              With .Font
                .Color = -7303024
                .TintAndShade = 0
                .Bold = False
              End With
              
          End Select
          
          .VerticalAlignment = xlBottom
          .WrapText = True
          .Orientation = 0
          .AddIndent = False
          .IndentLevel = 0
          .ShrinkToFit = False
          .ReadingOrder = xlContext
          .MergeCells = False
          
          If .Row = 14 Then .HorizontalAlignment = xlCenter
          .VerticalAlignment = xlCenter
          
        End With
      Next c
    End With
  Next sSheet
  Application.ScreenUpdating = True
  
  MsgBox "Fertig"
  
End Sub

Gruß
Rudi


  

Betrifft: AW: Hilfe beim Makro? von: Meier
Geschrieben am: 18.01.2012 14:11:45

Besten Dank. Klappt wunderbar.

Auf eure Hilfe ist immer verlass.

Wünsche eine gute zeit.

Marco


Beiträge aus den Excel-Beispielen zum Thema "Hilfe beim Makro?"