autom. Makroeintrag bei nicht leeren Zellen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: autom. Makroeintrag bei nicht leeren Zellen
von: Thomas
Geschrieben am: 04.03.2005 13:38:58
Hallo,
ich hab mit Hilfe des Makrorecorders ein Makro aufgenommen das automatisch Werte in bestimmte Zellen einträgt.


Sub Sollstunden_Januar()
'
' Sollstunden_Januar Makro
' Makro am 20.12.2004 von TRitter aufgezeichnet
'
' Tastenkombination: Strg+q
'
    Range("D47") = Range("C16").Value
    Range("E47") = Range("E16").Value
    Range("F47") = Range("G16").Value
    Range("G47") = Range("I16").Value
    Range("H47") = Range("K16").Value
    Range("I47") = Range("M16").Value
    Range("K47") = Range("C16").Value
    Range("L47") = Range("E16").Value
    Range("M47") = Range("G16").Value
    Range("N47") = Range("I16").Value
    Range("O47") = Range("K16").Value
    Range("P47") = Range("M16").Value
    Range("R47") = Range("C16").Value
    Range("S47") = Range("E16").Value
    Range("T47") = Range("G16").Value
    Range("U47") = Range("I16").Value
    Range("V47") = Range("K16").Value
    Range("W47") = Range("M16").Value
    Range("Y47") = Range("C16").Value
    Range("Z47") = Range("E16").Value
    Range("AA47") = Range("G16").Value
    Range("AB47") = Range("I16").Value
    Range("AC47") = Range("K16").Value
    Range("AD47") = Range("M16").Value
    Range("AF47") = Range("C16").Value
End Sub

Kann ich nun das so einrichten das wenn in der Zelle ein Wert oder aber auch ein Wort, also irgendwas steht, er nichts einträgt und mir stattdessen ein Popup-Fenster bringt, in dem er den Hinweis bringt das eine Zelle nicht leer war? Die genaue Zelle brauch ich nicht, das ist überschaubar...
Eine andere Frage wäre noch das ich mir eine Tastenkombination einrichten könnte mit der ich automatisch in der Zelle A1 lande?
Danke wieder mal im Voraus...
MfG aus Berlin
Thomas
Bild

Betrifft: AW: zu 2.)
von: WernerB.
Geschrieben am: 04.03.2005 15:05:48
Hallo Thomas,
die Tastenkombination gibt es schon:
Strg+Pos1

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Bild

Betrifft: AW: autom. Makroeintrag bei nicht leeren Zellen
von: Serge
Geschrieben am: 04.03.2005 15:10:05
Hallo Thomas versuch es mal so:
Application.Goto Reference:="R1C1"
If ActiveCell.Value = 0 Then
MsgBox "Zelle " & ActiveCell.Address(0, 0) & " ist leer"
Else
Application.Goto Reference:="R2C1"
Wenn A1 leer dann Meldung sonst A2
Serge
Bild

Betrifft: AW: autom. Makroeintrag bei nicht leeren Zellen
von: Thomas
Geschrieben am: 04.03.2005 15:20:00
Danke für die Tastenkombination...
Zu der Sache mit den nichtleeren Zellen:
Excel sollte mir ja im Bereich D47 - AF47 die Werte aus den Zellen C16 - M16 eintragen (am geposteten Beispiel).
Nun hätte ich gern das wenn eine Zelle im Bereich D47 - AF47 nicht leer ist, Excel ein MsgBox aufklappt das eine Zelle im Zielbereich nicht leer ist. Diese nichtleere Zelle soll Excel dann nicht laut Makro beschreiben, sondern mit dem bereits vorhandenen Inhalt einfach so lassen. Die anderen leeren Zellen sollte jedoch laut Makro ausgefüllt werden.
Geht das?
MfG aus Berlin
Thomas
Bild

Betrifft: AW: autom. Makroeintrag bei nicht leeren Zellen
von: WernerB.
Geschrieben am: 05.03.2005 15:51:59
Hallo Thomas,
wie gefällt Dir das?

Sub Sollstunden_Januar()
'
' Sollstunden_Januar Makro
' Makro am 20.12.2004 von TRitter aufgezeichnet
'
' Tastenkombination: Strg+q
'
Dim i As Byte, j As Byte, _
    b As Boolean
    Application.ScreenUpdating = False
    j = 1
    For i = 4 To 9
      j = j + 2
      If Cells(47, i).Value = "" Then
        Cells(47, i).Value = Cells(16, j).Value
      Else
        b = True
      End If
    Next i
    j = 1
    For i = 11 To 16
      j = j + 2
      If Cells(47, i).Value = "" Then
        Cells(47, i).Value = Cells(16, j).Value
      Else
        b = True
      End If
    Next i
    j = 1
    For i = 18 To 23
      j = j + 2
      If Cells(47, i).Value = "" Then
        Cells(47, i).Value = Cells(16, j).Value
      Else
        b = True
      End If
    Next i
    j = 1
    For i = 25 To 30
      j = j + 2
      If Cells(47, i).Value = "" Then
        Cells(47, i).Value = Cells(16, j).Value
      Else
        b = True
      End If
    Next i
    If Range("AF47").Value = "" Then
      Range("AF47").Value = Range("C16").Value
    Else
      b = True
    End If
    Application.ScreenUpdating = True
    If b = True Then
      MsgBox "Mindestens eine Zelle war nicht leer !", vbInformation, _
        "Dezenter Hinweis für " & Application.UserName & ":"
    End If
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
 Bild

Beiträge aus den Excel-Beispielen zum Thema "autom. Makroeintrag bei nicht leeren Zellen"