Makro verhindern wenn Zelle nicht leer

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

Betrifft: Makro verhindern wenn Zelle nicht leer
von: Thomas
Geschrieben am: 22.03.2005 13:30:06
Hallo,
ich hatte zwar die frage schon mal...komme aber irgendwie nicht klar.
Ich habe in Zellen (zB A1 bis A7) Werte stehen, wobei A1 für Montag, A2 für Dienstag usw steht.
Unter dieser Tabelle hab ich eine große nach Monaten. Wenn ich nun ein Makro ablaufen lasse, trägt er für jeden Monat einzeln die Werte aus der obigen Tabelle in den entsprechenden Tag im unteren Teil ein. Ich hab das einfach aufgezeichnet, das wird dann per Tastenkombination im jeweiligen Tabellenblatt ausgeführt.
Nun kommt es aber öfters vor das in der unteren Tabelle an einigen Tagen Kürzel reingeschrieben werden sollen, die dann nach Möglichkeit nicht überschrieben werden sollen.
Mein Makro macht ja nur den Wert aus A1-7 in die Zellen schreiben. Kann ich das irgendwie problemlos so regeln das wenn entsprechende Zelle nicht leer, das er dann die Eintragung nicht vornehmen soll?
Danke wieder mal im Voraus.
MfG aus Berlin
Thomas

Bild

Betrifft: AW: Makro verhindern wenn Zelle nicht leer
von: Peter W
Geschrieben am: 22.03.2005 13:48:08
Servus,
z.B. so:
if sheets("Tabelle1").range("a1") = 0 then
'dein Makro
end if
'usw..

MfG
Peter
Bild

Betrifft: AW: Makro verhindern wenn Zelle nicht leer
von: Thomas
Geschrieben am: 22.03.2005 14:22:18
Wenn ich das mit meinen Kenntnissen so richtig sehe, bezieht sich die Erweiterung darauf wenn eine Zelle im Bereich A1-A7 nicht leer ist. Diese Zellen sind nie leer da sie ja die Daten zum eintragen beinhalten. Lediglich die Zellen im unteren Bereich sin uU nicht leer...
Ferner scheint es sich auf das Tabellenblatt 1 zu beziehen. Ich habe allerdings so an die 300 verschiedene...gibt es dafür eine Formel in der alle angesprochen werden?
Zum besseren Verständnis hab ich mal ein Bsp. hochgeladen.
https://www.herber.de/bbs/user/19997.xls
Hier verwende ich für Januar folgendes Makro. PS. die Werte stimmen jetzt nicht, da ich nur einen Ausschnitt hochgeladen habe. Im Prinzip müsste dadurch die Funktion jedoch klar sein...

Sub Sollstunden_Januar()
'
' Sollstunden_Januar Makro
' Makro am 20.12.2004 von TRitter aufgezeichnet
'
' Tastenkombination: Strg+q
'
    Range("D21") = Range("C16").Value
    Range("E21") = Range("E16").Value
    Range("F21") = Range("G16").Value
    Range("G21") = Range("I16").Value
    Range("H21") = Range("K16").Value
    Range("I21") = Range("M16").Value
    Range("K21") = Range("C16").Value
    Range("L21") = Range("E16").Value
    Range("M21") = Range("G16").Value
    Range("N21") = Range("I16").Value
    Range("O21") = Range("K16").Value
    Range("P21") = Range("M16").Value
    Range("R21") = Range("C16").Value
    Range("S21") = Range("E16").Value
    Range("T21") = Range("G16").Value
    Range("U21") = Range("I16").Value
    Range("V21") = Range("K16").Value
    Range("W21") = Range("M16").Value
    Range("Y21") = Range("C16").Value
    Range("Z21") = Range("E16").Value
    Range("AA21") = Range("G16").Value
    Range("AB21") = Range("I16").Value
    Range("AC21") = Range("K16").Value
    Range("AD21") = Range("M16").Value
    Range("AF21") = Range("C16").Value
End Sub

Letzendlich möchte ich nun das im Zielbereich der Zeile 21 wenn die jeweilige Zelle nicht leer ist, die Eintragung aus dem Makro nicht durchgeführt wird. Schön wäre dan ein kleines Popup mit dem Hinweis "Achtung Besonderheiten"...
Eventuell hat ja jemand noch eine komfortablere Lösung für mich?
MfG aus Berlin
Thomas
Bild

Betrifft: AW: Makro verhindern wenn Zelle nicht leer
von: Martin Beck
Geschrieben am: 22.03.2005 16:58:28
Hallo Thomas,
für Dein Beispiel in dem Posting versuche es mal so:

Sub Sollstunden_Januar_alternativ()
Application.ScreenUpdating = False
j = 3
For i = 4 To 27
    If IsEmpty(Cells(21, i)) Then
     Cells(21, i) = Cells(16, j)
    End If
    If j < 13 Then
        j = j + 2
    Else
        MsgBox "Achtung Besonderheiten"
        j = 3
    End If
Next i
Application.ScreenUpdating = True
End Sub

Gruß
Martin Beck
Bild

Betrifft: AW: Makro verhindern wenn Zelle nicht leer
von: Thomas
Geschrieben am: 22.03.2005 17:28:58
Hallo Martin,
das funktioniert leider irgendwie nicht. Wenn der Sonntag leer ist in den Quelldaten, schreibt Excel den Montag in den Sonntag usw...
Das mit dem nicht überschreiben funktioniert, jedoch bringt er mir jedesmal 4 mal das Popup "Besonderheiten" obwohl die Ziel-Zellen alle leer sind.
Die Quell-Zellen sind also nicht immer voll! Kann man mein Anfänger-Makro nicht so abändern das er die Eintragungen nur vornimmt wenn die Ziel-Zellen leer sind?
MfG aus Berlin
Thomas
Bild

Betrifft: AW: Makro verhindern wenn Zelle nicht leer
von: Martin Beck
Geschrieben am: 24.03.2005 12:26:06
Hallo Thomas,
Deine Problembeschreibung verwirrt mich. Was ist denn jetzt möglicherweise leer, die Quell- oder die Zielzelle?
Versuch für Dein Beispiel noch mal diesen Code:

Sub Sollstunden_Januar_alternativ()
Application.ScreenUpdating = False
j = 3
For i = 4 To 32
    If IsEmpty(Cells(21, i)) Then
        Cells(21, i) = Cells(16, j)
    Else
        MsgBox "Achtung: Besonderheiten in Zelle " & Cells(21, i).Address(0, 0)
    End If
    If j < 15 Then
        j = j + 2
    Else
        j = 3
    End If
Next i
Application.ScreenUpdating = True
End Sub

Ich habe den Code in Deine Beispieldatei implementiert und die Datei hochgeladen:
https://www.herber.de/bbs/user/20122.xls
Gruß
Martin Beck
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro verhindern wenn Zelle nicht leer"