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"