Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
148to152
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
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kein ungewollter Datenverlust vor Macroausführung

Kein ungewollter Datenverlust vor Macroausführung
16.08.2002 11:23:05
Ammar
Guten Tag liebe Gemeinde,

kürzlich war man mir von hieraus schon sehr behilflich, als es darum ging, Daten aus aus einem 3 Jahresvergleich (Formular) mit neuen Daten aus den Folgejahren fortzuschreiben, ohne dabei das Tabellenblatt selbst erweitern zu müssen. Bevor nun also mein Macro loslegt (bei mir Daten aus dem Jahr 1 durch eliminiert und die Daten aus Jahr2 und Jahr3 in die vorderen Spalten verschoben werden [also Jahr3 wird zu Jahr2 und Jahr2 wird zu Jahr1]), sieht die nachstehende Sequenz eine Sicherheit vor (Zwischenfrage in Dialogbox), ob diese Verschiebung tatsächlich vorgenommen werden soll, da ja die Daten aus der ersten Spalte unwiederbringlich verschwinden:

Dim strQuest As String
strQuest = MsgBox("Are you sure to add a new column ? " & _
"YES will irretrievably delete your data in column C !!", vbYesNo + vbQuestion, "Confirmation of adding new column")
'Wenn die Abfrage mit "Nein" bestätigt wird,
'wird die Prozedur mit dem nächsten Befehl abgebrochen.
If strQuest = vbNo Then Exit Sub
'Bereich löschen und Zellen nach links verschieben

Nach weiterer Überlegung, wie man die Anwendung des Macros, angesichts des Datenverlustes noch sicherer machen kann, würde ich jetzt gerne eine zusätzliche Bedingung mit einbauen, und zwar die, daß das Macro immer nur dann ausführbar ist, wenn zuvor alle 3 Spalten des Formulars auch mit Daten belegt sind. Anders gesagt, eine "neue" leere Spalte 3 im Formular soll erst dann geschaffen werden, wenn auch Daten im 3. Jahr (in Spalte 3) vorliegen und das Formular somit "voll" ist.

Nach Ausführung des Macros unter dieser Bedingung müsste somit der hierbei vordefinierte Bereich der 3. Spalte erst wieder mit neuen Daten (aus dem Folgejahr) "gefüllt" sein, bevor ein neues "Freiwerden" der 3. Spalte per Nachvorneschub der Vorpalteninhalte erfolgen kann. Denn man hat schnell (egal ob vorsätzlich oder fahrlässig) auf so einen Command Button geklickt.

Zusammenfassung: Der Makrobefehl den ich suche, lautet trivialerweise

Macro erst dann ausführbar, wenn der definierte Spaltenbereich (z.B. G5:G185) der Spalte 3 auch lückenlos mit Daten belegt ist.

Wer hätte eine Idee für mich ?


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kein ungewollter Datenverlust vor Macroausführung
16.08.2002 12:32:45
richard
zu der art und weise die alten daten zu löschen, schweige ich.
aber hier vielleicht ne hilfe.
überprüf doch einfach, ob die zeile in der das dritte jahr steht genutzt wird.


sub test

LetzteZeile = Range("A65536").End(xlUp).Row
LetzteZeile1 = Range("B65536").End(xlUp).Row
LetzteZeile2 = Range("C65536").End(xlUp).Row
LetzteZeile3 = Range("D65536").End(xlUp).Row
LetzteZeile4 = Range("E65536").End(xlUp).Row
LetzteZeile5 = Range("F65536").End(xlUp).Row
LetzteZeile6 = Range("G65536").End(xlUp).Row
LetzteZeile7 = Range("H65536").End(xlUp).Row
LetzteZeile8 = Range("I65536").End(xlUp).Row
.
.
.

test = WorksheetFunction.min(LetzteZeile, LetzteZeile1, LetzteZeile2, LetzteZeile3, LetzteZeile4, LetzteZeile5, LetzteZeile6, LetzteZeile7, LetzteZeile8)

if test < "als die letzte zeile eigentlich sein sollte" then
"makro abbrechen
else "makro ausführen"

end sub

du mußt natürlich die spaltenanzahl anpassen.
#bedingung ist, dass der platz unterhalb der daten nicht mit etwas anderem genutzt wird.

mfg richi

Anzeige
Re: Kein ungewollter Datenverlust vor Macroausführung
16.08.2002 15:39:14
Ammar
Super, Richi !! Merci

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige