Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
472to476
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
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lösch-Aktion

Lösch-Aktion
25.08.2004 15:19:14
Frank
Hallo Excel-Freunde,
wie kann ich die Lösch-Aktion wie unten angezeigt verkürzt eingeben
so das auch diese schneller abläuft.
(Download funktioniert nicht(Lösch-Aktion.xls))
Grüß
Frank

Sub MA_Neue_Gesamtberechnung()
' MA_Neue_Gesamtberechnung Makro
Makro am 25.08.2004
If MsgBox("Sollen die Daten unwiederruflich gelöscht werden", vbQuestion + vbYesNo, "                       Lösch-Aktion!") = vbYes Then
Application.ScreenUpdating = False
Sheets("MA Blindplatten 1").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 1").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 1").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 1").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 1").Select
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Application.Run "Modul41.Neue_Berechnung"
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("MA Gesamtberechnung").Select
Sheets("MA Blindplatten 2").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 2").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 2").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 2").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 2").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 3").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 3").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 3").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 3").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 3").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 4").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 4").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 4").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 4").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 4").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 5").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 5").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 5").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 5").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 5").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 6").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 6").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 6").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 6").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 6").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 7").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 7").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 7").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 7").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 7").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 8").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 8").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 8").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 8").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 8").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 9").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 9").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 9").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 9").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 9").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Blindplatten 10").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Diverses 10").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Frontplatten 10").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Gehäuse 10").Select
Application.Run "Modul41.Neue_Berechnung"
Sheets("MA Rückwand 10").Select
Application.Run "Modul41.Neue_Berechnung"
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Application.ScreenUpdating = False
Sheets("Einzelsummen").Select
Range("A3").Select
Else
End If
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lösch-Aktion
Andreas
Zuerst zum UPload
Nenn die Datei loeschaktion.xls
(ohne Umlaut und ohne Strich)
und speicher sie zuerst bei Dir in (z.B.) C:
(bzw. irgendwo ganz oben, oder in einem Top-verzeichnis, ohne Sonderzeichen im Namen)
dann klappt es mit dem UPload
Dann - ich weiß nicht was
Application.Run "Modul41.Neue_Berechnung"
macht. Aber ist es wirklich notwendig JEDES Mal es aufzurufen?
Und weiter
for i=1 to 10
Sheets("MA Gehäuse " & i).Select
Application.Run "Modul41.Neue_Berechnung"
next i
schleift von 1 bis 10 durch und "macht" ("MA Gehäuse 1") ("MA Gehäuse 2") usw. bis ("MA Gehäuse 10"
Das verkurzt die Code auf jedem Fall. Hilft das?
Und als letzter Tipp. Versuch
Application.calculation
am Anfang auf manuell und am Ende auf Automatisch
zu setzen.
Anzeige
AW: Lösch-Aktion
25.08.2004 16:36:06
Frank
Hallo Andreas,
ich habe es ausprobiert aber meine VBA-Kentnisse sind doch zu geringfügig
das ich dieses Problem mit deinen Angaben lösen konnte.
Mit dem upload hat es jetzt funktioniert. (s.1 AW)
Das Modul41 ist der upload aus VBA kopiert.
Danke für deine Hilfe
Frank
AW: Lösch-Aktion
Andreas
Ja aber was ist
Application.Run "Modul41.Neue_Berechnung"
Ich sehe nur
MA_Neue_Gesamtberechnung()
Und was meinst Du genau mit
- ich habe es ausprobiert
Was hast Du gemacht - was ist geschehen?
Mehr Infos bitte
Anzeige
AW: Lösch-Aktion
26.08.2004 07:57:29
Frank
Hallo Andreas,
ich habe mehrere Tabellenblätter mit Summenergebnissen
die in einem Tabellenblatt Namens Gesamtberechnung zusammengefasst werden
um diese Summen zur Neuberechnung wieder zu löschen dient die Application.Run "Modul41.Neue_Berechnung".
Erstellt mit Makrorecorder.
Dies funktioniert auch wunderbar das größte Problem ist A: Die umfangreiche Eingabe
und B: Die Lösch-Aktion dauert mindestens 1 Minute.
Leider weiss ich nicht wie die genaue Eingabe lautet die du mir zugesand hattest
da er mir einen Fehler anzeigt - Fehler beim Komplilieren- Außerhalb einer Prozedur
ungültig.
File: https://www.herber.de/bbs/user/10121.xls
Gruß
Anfänger Frank
Anzeige
AW: Lösch-Aktion
Andreas
Ok Dir fehlt anscheinend Baiswissen.
Ein Makro ist ein Subprogramm.
Es fängt mit z.B.

Sub Test()
an. Und hört mit
End Sub

auf.

Sub Willko()
Msgbox "Hallo Welt"
End Sub

Ist ein einfaches Makro mit Namen "Willko" und es schreibt "Hallo Welt" in einem Messagebox. Du hast ein Makro mit Namen MA_Neue_Gesamtberechnung
Die Befehle die ich Dir gegeben habe, geören zwischen dem "Sub" und dem "End Sub " Befehl
AW: Lösch-Aktion
26.08.2004 10:23:35
Frank
Sorry,
Neue Berechnung nun gefunden, war nicht enthalten
habe eine vereinfachte Mappe erstellt
funktioniert aber leider nicht.
https://www.herber.de/bbs/user/10135.xls
Frank
Anzeige
AW: Lösch-Aktion
Andreas
Mein lieber Frank,
Jetzt. Einmal tief durchatmen.
Ich habe nicht den blassesten Schimmer von was du erreichen möchtest.
Im Augangsposting stand
- wie kann ich die Lösch-Aktion wie unten angezeigt verkürzt eingeben
- so das auch diese schneller abläuft.
Ich habe Dir versch. Tipps gegeben, die Du noch nicht alle durchprobiert hast.
Jetzt schreibst Du
- funktioniert aber leider nicht.
"funktioniert nicht" ist nicht besondes viele Information oder? Wenn ich Dir sage, mein PC "funktioniert nicht", wirst Du mir kaum helfen können oder?
Was funktioniert nicht? was passiert? kommt eine Fehlermeldung? welche? usw. usw.
Zur Info:
Wenn ich es richtig verstehe ist
Application.Run "Modul2.Neue_Berechnung"
genau gas gleiche wie
Call Neue_Berechnung
Vielleicht ist das schneller
Mit folgendem Code
For i = 1 To 10
Sheets("Tabelle 1" & i).Select
Sheets("Tabelle 2" & i).Select
Sheets("Tabelle 3" & i).Select
Application.Run "Modul2.Neue_Berechnung"
Next i
versuchst Du
auf "Tabelle 11" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 21" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 31" zzugreifen und dann Neue_Berechnung aufzurufen
Dann
auf "Tabelle 12" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 22" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 32" zzugreifen und dann Neue_Berechnung aufzurufen
usw. bis
auf "Tabelle 110" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 210" zuzugriefen aber dann machst Du überhaupt nichts damit
dann auf "Tabelle 310" zzugreifen und dann Neue_Berechnung aufzurufen
Sprich Käse.
Jetzt einmal tiefdurchatmen und nochmals genau erklären was Du erreichen möchtest
Anzeige
AW: Lösch-Aktion
26.08.2004 11:29:46
Frank
Danke für deine verständliche Rüge,
Habe das File noch etwas abgeändert.
https://www.herber.de/bbs/user/10139.xls
In den Tabellenblätter Gehäuse 1 u. 2 Rückwand 1 u. 2
sollten alle 1 Werte auf 0 gesetzt werden,
jedoch beim betätigen der Schaltfläche bekomme ich die Fehlermeldung
Laufzeitfehler Index außerhalb des gültigen Bereichs.
Frank
AW: Lösch-Aktion
Andreas
Ein Schritt in die richtige Richtung.
Ich habe es schon vorhin erklärt. Ich erkläre es nochmals und ausführlicher.
Du hast
For i = 1 To 2
Sheets("Gehäuse 1" & i).Select
Sheets("Gehäuse 2" & i).Select
Sheets("Rückwand 1" & i).Select
Sheets("Rückwand 2" & i).Select
Application.Run "Modul2.Neue_Berechnung"
Next i
Das ist eine Schleife. Die Schleife wird zweimal durchlaufen, einmal mit dem Wert 1 in der Variable i und einmal mit dem Wert 2 in der Variable i
Bei dem ersten Durchlauf ist i=1. Der erster Befehl lautet
Sheets("Gehäuse 1" & i).Select
Der Computer ersetzt i durch 1 und errechnet
Sheets("Gehäuse 11").Select
Aber Du hast gar kein Sheet Gehäuse 11
Richtig wäre daher
For i = 1 To 2
Sheets("Gehäuse " & i).Select
Sheets("Rückwand " & i).Select
Application.Run "Modul2.Neue_Berechnung"
Next i
Dann wurde er im ersten Durchlauf "Gehäuse 1" und danach "Rückwand 1" ansprechen. Und im zweiten Lauf "Gehäuse 2" und danach "Rückwand 2" ansprechen. Aber ansprechen allein (mit SELECT) ist nichts. Ein SELECT macht nichts (ausser das Blatt zu archivieren). Du hast keine Aktion vorgenommen.
Vielleicht
For i = 1 To 2
Sheets("Gehäuse " & i).Select
Application.Run "Modul2.Neue_Berechnung"
Sheets("Rückwand " & i).Select
Application.Run "Modul2.Neue_Berechnung"
Next i
Dann ruft er Dein makro Neue_Berechnung auf allen vier Blättern auf.
Aber was diese Neue_Berechnung machen soll, und ob das korrekt ist, entzieht meine Kenntnisse.
Anzeige
AW: Lösch-Aktion
26.08.2004 12:00:43
Frank
Super jetzt funktioniert es,
danke Andreas für deine ausdauernde Hilfe
ich habe viel dazugelernt.
Gruß
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige