per VBA Zeile aus Modul löschen

Bild

Betrifft: per VBA Zeile aus Modul löschen von: Uwe
Geschrieben am: 17.03.2005 13:53:11

Hallo Herfer

VBA gut... aber hier scheitere ich..


Wie kann ich durch Makrocode Makrocode weiter oben weglöschen?



Private Sub Workbook_Open()
    'Zeile1 Kann auch code sein
    'Zeile2
    'und hier geht es weiter
    '***
    'hier soll jetzt hin, den Eintrag von Zeile1 bis Zeile2
    '
    ThisWorkbook.Save
End Sub



In der Recherche hab ich nur gefunden "kompl. Modul zu löschen"


Danke und Gruß

Uwe
Bild


Betrifft: Warum per VBA Zeile aus Modul löschen ? von: marcl
Geschrieben am: 17.03.2005 14:09:06

Hallo Uwe,

warum möchtest Du eine Makro weiter oben löschen, wenn es durchgelaufen ist? Soll für weitere Läufe was verändert werden?

Gruß

marcl


Bild


Betrifft: genau... von: Uwe
Geschrieben am: 17.03.2005 14:12:26

Hallo nochmal


in den oberen Zeilen will ich eine Art Registrierung durchführen, Aber nur beim ersten mal.


Hab mitlerweile was gefunden.. aber das klappt nicht


Wer hilft??


With ActiveSheet.Parent.VBProject.vbcomponents(ActiveSheet.CodeName).codemodule
.DeleteLines 1, 2
End With


Bild


Betrifft: AW: genau... von: marcl
Geschrieben am: 17.03.2005 14:18:57

ach so,

wie wärs mit nem Zellenbezug?

If Range("IV65000")<>"" Then ' niemals verwendete Zelle
...
Range("IV65000")=1
End If


Gruß

marcl


Bild


Betrifft: AW: genau... von: P@ulchen
Geschrieben am: 17.03.2005 14:22:34

Hallo Uwe,

Beispiel:


Sub löschen()
    With ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule
        .DeleteLines 5,1
    End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5




Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


Bild


Betrifft: Danke, es klappt von: Uwe
Geschrieben am: 17.03.2005 14:36:19

Hallo


besten Dank.


So hab ich es jetzt gelöst


In DieseArbeitsmappe


Option Explicit
Private Sub Workbook_Open()
    Register
    Dim LOG, LR%, UserN$, UserID$
    On Error Resume Next
    Set LOG = ThisWorkbook.Sheets("LOG")
    LR = LOG.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte
    UserN = Application.UserName
    UserID = Environ("Username")
    LOG.Cells(LR + 1, 1).Value = Format(Now, "YYYY.MM.DD hh:mm:ss")
    LOG.Cells(LR + 1, 2).Value = UserID
    LOG.Cells(LR + 1, 3).Value = UserN
End Sub


in Modul1


Option Explicit
Sub Register() 'Steht in Modul
    'hier steht die Registrierung
    With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").codemodule
        .DeleteLines 3
    End With
    ThisWorkbook.Save
End Sub

Damit lösche ich den Register Aufruf raus

Klappt


Bild


Betrifft: AW: Danke, es klappt von: Uwe
Geschrieben am: 17.03.2005 15:03:56

Hi

und so wird auch noch das ganze Modul selbst gelöscht


Sub Register() 'Steht in Modul1
    'hier steht die Registrierung
    With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").codemodule
        .DeleteLines 3
    End With
    With ThisWorkbook.VBProject
        .VBComponents.Remove .VBComponents("Modul1")
    End With
    ThisWorkbook.Save
End Sub


Gruß Uwe


Bild


Betrifft: AW: Danke, es klappt von: P@ulchen
Geschrieben am: 17.03.2005 15:37:16

Hallo Uwe,

gibt aber sicher ein anderes Problem:
Wenn die Datei von anderen Usern genutzt werden soll, muß "Zugriff auf das Visual Basic-Projekt vertrauen" angehäkselt sein, da sonst eine Warnmeldung erscheint und der Code nicht ausgeführt wird.
Die Frage ist dann immer, ob der User das so einfach gestattet...



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


Bild


Betrifft: Klar.. von: Uwe
Geschrieben am: 17.03.2005 16:21:45

Hallo Paulchen

Die Datei gibt nur mit Makro Sinn, da hier verschiedene Ereignisse beim Wechsel auf Diagrammseiten ausgelöst werden usw.



Ohne Makro macht die Datei "keinen Spaß".....



Gruß Uwe


Bild


Betrifft: AW: Klar.. von: P@ulchen
Geschrieben am: 17.03.2005 18:41:58

Hallo Uwe,

ich bin mir nicht sicher, ob Du mich richtig verstanden hast...
Ich meinte nicht die Aktivierung der Makros beim Öffnen der Mappe, sondern die Sicherheitseinstellungen im Excel auf dem PC des Users.
Schau mal unter Extras-Makro-Sicherheit-Vertrauenswürdige Quellen, da muß das Häkchen bei Zugriff auf... gesetzt sein. Ist dem nicht so, wirst Du mit Deinem Code wenig Glück haben.
Ich denke, daß es kein guter Programmierstil ist, wenn man dynamisch Codezeilen hinzufügt oder löscht. Sicher geht es manchmal nicht anders, vor allem wenn man einen Code erstellt, der nach Möglichkeit auf allen Excel-Versionen laufen soll.
Nimm besser einen Zellwert in einem ausgeblendeten Blatt und frage diesen ab, um Deine Registrierung durchzuführen.



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Funktion Autosave / speichern in Excel VBa"