Office - Word, Excel und Co. 9.736 Themen, 41.351 Beiträge

Excel - diemal gleich 3 Fragen auf einmal *g*

Olaf19 / 49 Antworten / Flachansicht Nickles

Hallo zusammen!

Heute habe ich gleich 3 Fragen auf einmal zu Excel - das geht nun wirklich nicht *g*...
  • "Einmal Makro - immer Makro"? Wenn ich ein Makro nicht mehr benötige und es im Visual-Basic-Editor allergründlichst mit Strunk und Stiel entferne, so erscheint trotzdem in Zukunft immer bei jedem Öffnen des Excel-Sheets die Frage "Diese Datei enthält Makros, sollen diese aktiviert werden?" - ist das normal so? Muss man erst ein neues Sheet aufmachen und die Daten aus dem alten dort hineinkopieren? Oder wo setzt Excel dieses "Makro-Flag"?

  • Um die Nachkommastellen einer Zahl zu berechnen, nehme ich immer die Formel =A1-GANZZAHL(A1) - aber gibt es da keine elegantere Methode? In der Excel-Hilfe konnte ich jedenfalls keinen eigenen Befehl dafür finden.

  • Zahlen aus Zeichenketten auslesen - auch hier wieder die Frage, ginge es auch eleganter? Z.B. Wenn ich eine Zeichenkette habe wie "10:12:15" und die - übrigens nicht zwangsläufig immer *zwei*stelligen! - Zahlen dort auslesen möchte, um sie auf jeweils eine eigene Zelle zu verteilen, geht das nur mit den String-Befehlen LINKS, RECHTS und FINDEN (=> nämlich den ":" als Trennzeichen?) Ich vermute stark "ja", aber fragen kostet ja nichts.
Ihr wisst bestimmt wie immer gut Bescheid, deswegen gleich im Vorwege:

THX
Olaf
Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
mumpel1 Olaf19 „ Jepp - und genau darum, und wirklich nur darum ging es in diesem Thread. Genau...“
Optionen

Mit folgenden Code kannst Du alles Code inklusive Module aus einer Arbeitsmappe löschen. Zuerst musst Du in den Makroeinstellungen einen Haken bei "Zugriff auf Visual-Basic-Projekt vertrauen" setzen. Die folgenden Makros in ein Modul der persönlichen Makroarbeitsmappe kopieren. Das Makro "Alles_löschen" dann in die gewünschte Symbolleiste legen.

Sub Alles_löschen()
Call Lösche_Module
Call Lösche_Userformen
Call Lösche_Ereignisprozeduren
End Sub

Sub Lösche_Module()
'Löscht Module:
For n = ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
If ActiveWorkbook.VBProject.VBComponents(n).Type = 1 Or _
ActiveWorkbook.VBProject.VBComponents(n).Type = 2 Then
ActiveWorkbook.VBProject.VBComponents(n).Collection.Remove _
ActiveWorkbook.VBProject.VBComponents(n)
End If
Next
End Sub

Sub Lösche_Userformen()
'Löscht Userforms:
For n = ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
If ActiveWorkbook.VBProject.VBComponents(n).Type = 3 Then
ActiveWorkbook.VBProject.VBComponents(n).Collection.Remove _
ActiveWorkbook.VBProject.VBComponents(n)
End If
Next
End Sub

Sub Lösche_Ereignisprozeduren()
'Löscht Ereignisprozeduren:
For n = ActiveWorkbook.VBProject.VBComponents.Count To 1 Step -1
For i = 1 To ActiveWorkbook.VBProject.VBComponents(n).CodeModule.CountOfLines
If ActiveWorkbook.VBProject.VBComponents(n).Type <> 1 And _
ActiveWorkbook.VBProject.VBComponents(n).Type <> 3 Then _
ActiveWorkbook.VBProject.VBComponents(n).CodeModule.DeleteLines 1
Next
Next
End Sub

Wenn Du dann alles VBA-Code aus der aktiven Arbeitsmappe löschen möchtest, dann musst Du nur noch das Makro "Alles_Löschen" ausführen. Dann sollten solche Probleme nicht mehr auftreten.

bei Antwort benachrichtigen