Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

leere Zelle verhindern

leere Zelle verhindern
Korl
Hallo,
in einem Bereich die sich auf eine Spalte bezieht soll streng untereinander Codes eingegeben werden. Diesen eingegebenen Bereich möchte ich dann wiederum als Gültigkeitsliste verwenden.
Nun möchte ich verhindern, dass in diesen Bereich keine leere Zelle erzeugt werden kann.
Ist so etwas möglich?
Wenn ja, wie?
Gruß Korl
AW: leere Zelle verhindern
15.02.2006 20:37:12
Korl
Hallo,
just kam mir die Lösung in den Sinn. Die fünfig Zellen lassen ich sortieren, somit erhalte ich keine leere Zelle in der Liste.
Gruß Korl
AW: leere Zelle verhindern
16.02.2006 20:42:34
Korl
Hallo und guten Abend allerseits,
mit meiner Sortiererei ging es nach hinten los, da ich alle Zellen in dem Bereich jeweils einen Namen zugeordnet habe.
Ich habe mir nun eine neue Variante einfallen lassen, die wie folgt aussieht:
Sub InputBox_Eintrag()
Dim s As String
s = InputBox("Nummer:")
    If StrPtr(s) = 0 Then
      Exit Sub
    ElseIf s = "" Then
      Exit Sub
    ElseIf Range("D59") <> "" Then
      MsgBox "Du hast das Ende der Eintragungsmöglichkeit erreicht"
      Exit Sub
    End If
    Worksheets("Tabelle1").Cells(Cells(65536, 4).End(xlUp).Row + 1, 4).Value = s
End Sub
Sub letztenEintrag_löschen()
On Error Resume Next
Worksheets("Tabelle1").Cells(Cells(65536, 4).End(xlUp).Row, 4).ClearContents
End Sub
Das funktioniert auch ganz nach meinen Vorstellungen.
Was mir nun fehlt?
Ich muß das Löschen in meinen Bereich einschränken. Das Löschen läuft von unten nach oben und ab Range("D10") soll schluß sein damit.
Kann mir bitte hierbei jemand helfen?
Gruß Korl
Anzeige
AW: leere Zelle verhindern
16.02.2006 21:16:30
MichaV
Hallo Korl,
meinst Du so etwas:

x=Worksheets("Tabelle1").Cells(65536, 4).End(xlUp).Row
if x>10 then Worksheets("Tabelle1").Cells(x, 4).ClearContents

Gruß- Micha
PS: Rückmeldung wäre nett.
AW: leere Zelle verhindern
16.02.2006 21:31:59
Korl
Hallo Micha,
bist Du noch im Lande? ;-)
Micha, genau so brauche ich es!!!
Tja, diese Raffinesse fehlt einem halt noch ;-) aber für meine Freizeit...
Gruß Korl
Danke für die Rückmeldung! mT
16.02.2006 21:41:21
MichaV
Hallo Korl,
danke für die Rückmeldung.
Am 1.3. gehts los aber ich bin guter Hoffnung, daß Herber.de da oben auch zu empfangen ist.
Gruß- Micha
AW: Danke für die Rückmeldung! mT
16.02.2006 21:54:53
Korl
Hallo Micha,
ich wünsche Dir viel Erfolg und hoffe doch sehr stark, daß Du Herber.de empfangen kannst.
Mein Projekt habe ich nun so gut wie fertig und wer weis was für Ideen mir vielleicht noch einfallen werden. ;-)
Gruß Korl
Anzeige
noch eine Abfrage bevor Ausführung
17.02.2006 14:56:36
Korl
Hallo,
ich muß doch noch eine Abfrage im nachfolgenden Code einbauen, bevor gelöscht werden kann.
Private Sub CommandButton6_Click()
'Nummern löschen von unten nach oben
Set wksKreis = Worksheets("Kreis")
Set wksOrt = Worksheets("Ortslist")
Dim x As Long, lLetzte As Long
Call Unprot
lLetzte = IIf(wksOrt.Range("D65536") <> "", 65536, wksOrt.Range("D65536").End(xlUp).Row)
If WorksheetFunction.CountIf(wksKreis.Range("G2:G5001"), wksOrt.Range("D" & lLetzte)) > 0 Then
             MsgBox "Der Bereich wurde bereits eingelesen " & vbLf & vbLf & _
                    "Das Löschen wird abgebrochen!" & vbLf, 16, "Abbruch"
    Exit Sub
  Else
    On Error Resume Next
    If x > 9 Then Worksheets("Ortslist").Cells(x, 4).ClearContents
    ActiveSheet.Protect Password:="xxx"
  End If
End Sub
Der letzte Wert darf nicht gelöscht werden, wenn dieser im o.g. Bereich bereits erfaßt wurde.
Grundsätzlich habe ich es mit dieser Praktik schon hin bekommen, nur in diesem Fall beziehe ich mich auf den letzten Wert eines Bereiches und das will nicht klappen.
Kann mir doch noch mal jemand unter die Arme greifen?
Gruß Korl
Anzeige
AW: noch eine Abfrage bevor Ausführung
17.02.2006 18:31:56
MichaV
Hallo Korl,
1. bei Deinem Makro wird x immer 0 sein.
2. wo genau soll die Abfrage
3. wann erfolgen?
Gruß- Micha
AW: noch eine Abfrage bevor Ausführung
17.02.2006 21:03:50
Korl
Hallo Micha,
schön das Du Dich meldest.
In meinen Projekt lese ich csv-Dateien ein die ich selber zuordnen muß.
Aus diesem Grund lege ich vorher im Range("D9:D50") Personencodes an. Diese Liste mit den Codes benutze ich zur weiteren Auswertung als Gültigkeitsliste und mit den Funktionen "Summenprodukt".
Darum möchte ich
1. den Bereich ohne Leerzellen anlegen. (das habe ich fertig - die Einträge erfolgen über Button)
2. sollte dieser Code korrigiert werden oder nachträglich bewußt oder unbewusst manipuliert werden möchte ich nun folgende Sicherheit einbauen:
- wenn nun bereits die csv_Dateien eingelsen wurden und deren Codes im Bereich "wksKreis.Range("G2:G5001")"~f~ vorhanden sind, darf nachträglich nicht mehr an der ersten Liste im "Range(D"9:D50") der betroffene Code gelöscht werden.
Diese Einschränkung ~f~"If x &gt 9 Then Worksheets("Ortslist").Cells(x, 4).ClearContents" dient nur dazu, außerhalb des Bereichs weitere Löschungen zu unterbinden.
Micha, ich hoffe ich habe es nicht zu verschachtelt erklärt.
Gruß Korl
Anzeige
AW: noch eine Abfrage bevor Ausführung
17.02.2006 21:32:42
Korl
Hallo Micha,
habs doch noch schaffen können.
Hier der Code:
Private Sub CommandButton6_Click()
'Nummern löschen von unten nach oben
Set wksKreis = Worksheets("Kreis")
Set wksOrt = Worksheets("Ortslist")
Dim x As Long, lLetzte As Long
Call Unprot
lLetzte = IIf(wksOrt.Range("D65536") <> "", 65536, wksOrt.Range("D65536").End(xlUp).Row)
If WorksheetFunction.CountIf(wksKreis.Range("G2:G5001"), wksOrt.Range("D" & lLetzte).Value) > 0 Then
             MsgBox "Der Bereich wurde bereits eingelesen " & vbLf & vbLf & _
                    "Das Löschen wird abgebrochen!" & vbLf, 16, "Abbruch"
    Exit Sub
  Else
On Error Resume Next
x = Worksheets("Ortslist").Cells(65536, 4).End(xlUp).Row
If x > 9 Then Worksheets("Ortslist").Cells(x, 4).ClearContents
   
    ActiveSheet.Protect Password:="xxx"
  End If
End Sub
So löbt der Code as ick woll will. ;-)
Micha, hab Dank noch mal für Dein entgegen gebrachtes Interesse.
Gruß Korl
Anzeige
AW: noch eine Abfrage bevor Ausführung
17.02.2006 21:40:23
MichaV
Hallo Korl,
Du hattest es (für mich) zu verschachtelt erklärt, umso mehr freut mich, daß Du eine Lösung gefunden hast.
Danke für die Info, daß das Problem erledigt ist!
Gruß- Micha

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige