Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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
Inhaltsverzeichnis

Makro startet in falscher Excel-Datei

Makro startet in falscher Excel-Datei
01.11.2018 12:00:55
Dominik
Hallo an alle,
ich habe wieder einmal ein kleines Problem bei dem Ihr mir bestimmt weiterhelfen könnt. Mit Hilfe von einigen in diesem Forum habe ich bereits ein Makro geschrieben, welches das Datum in eine bestimmte Zelle schreibt wenn ich einen Wert ändere oder den enthaltene mit "Enter" bestätige.
Zur Erklärung das folgende Makro soll/bewirkt, dass ich die Freibeträge in einer Tabelle eintragen kann. Wenn ich den Wert ändere oder mit "Enter" bestätige, dann wird das aktuelle Datum in der gleichen Zeile (andere Spalte) eingetragen. Dadurch ist mir gleich ersichtlich wie aktuell der eingetragene Wert ist.
Probleme habe ich wenn ich gleichzeitig die Excel-Datei in der sich dieses Makro befindet offen habe und eine weitere Excel-Datei. Dann sorgt das Makro immer für einen Debug (Laufzeitfehler '1004' [siehe Bild im Anhang]).
Userbild
Das Makro hängt sich dann in der Zeile
"If Intersect(Zelle, Union(Range("tblDominik"), Range("tblAnja")), Columns(p_cintSpalteBetrag)) Is Nothing Then Exit Sub" auf.
In den entsprechenden "Sheets" befindet sich dazu das Makro
Im Sheet:
Option Explicit
Private Sub Worksheet_Activate()
Dim strSheetCodename As String
strSheetCodename = ActiveSheet.CodeName
modZelleAktivieren.InZelleSpringen (strSheetCodename)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
p_intSelectSpalte = Target.Column
p_intSelectZeile = Target.Row
Application.OnKey "{ENTER}", "DatumEintragenFreibetraege"
Application.OnKey "~", "DatumEintragenFreibetraege"
Application.EnableEvents = True
End Sub

Die entsprechende Sub "DatumEintragenFreibetrag" lautet:
Public Sub DatumEintragenFreibetraege()
Dim Zelle As Range
Dim intOffset As Integer
intOffset = 1
If p_intSelectZeile = 0 Or p_intSelectSpalte = 0 Then
ActiveCell.Offset(1, 0).Select
Exit Sub
Else
Set Zelle = Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte)
If Intersect(Zelle, Union(Range("tbl..."), Range("tbl...")), Columns(p_cintSpalteBetrag) _
_
) Is Nothing Then Exit Sub
modBlattschutz.BlattschutzAus
Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte).Offset(0, p_cintOffsetDatumBetrag). _
Value = Format(Date, "DD.MM.YYYY")
modBlattschutz.BlattschutzAn
Do While Sheet5.Cells(p_intSelectZeile + intOffset, p_intSelectSpalte).Locked = True
If intOffset > 100 Then
intOffset = 0
Exit Do
Else
intOffset = intOffset + 1
End If
Loop
Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte).Offset(intOffset, 0).Select
End If
End Sub

Ich hoffe Ihr könnt mir mit diesen Informationen bereits weiterhelfen. Sollte ich noch etwas schuldig bleiben, dann meldet euch bitte.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro startet in falscher Excel-Datei
01.11.2018 12:23:44
onur
Statt:
Range("tblAnja"))
das:
ThisWorbook.Shets("WieAuchImmer").Range("tblAnja"))
für Range("tblDominik") ebenso.
"Die Methode "Range" für das Objekt Global...."
bedeutet, dass der Code sagen will: "Welche Datei und welches Blatt denn?"
AW: Makro startet in falscher Excel-Datei
01.11.2018 12:29:09
onur
Ich vermute mal, das letzte Makro befindet sich auf einem Modul.
Beim Code im Modul des Blattes reicht "Range.", ausserhalb des Blattmoduls musst du das gemeinte Blatt schon angeben, und für den Fall, daß noch eine Datei offen ist, sicherheitshalber auch die Datei.
AW: Makro startet in falscher Excel-Datei
02.11.2018 11:44:58
Dominik
Hallo onur,
1) Ja ich habe die letzte Prozedur in ein Modul geschrieben.
2) Ich habe nun Workbooks("Dateiname + Endung [.xlsm]").Sheets("Blattname").UndSoWeiter hinterlegt. Das Makro lässt sich damit auch weiterhin durchführen. Leider habe ich nun eine andere Fehlermeldung (siehe Bild) mit der Methode "Intersect". Muss ich noch etwas abändern, damit der Code eindeutiger wird?
Userbild
Gruß
Dominik
Anzeige
AW: Makro startet in falscher Excel-Datei
02.11.2018 11:48:27
Dominik
Dazu muss ich vielleicht noch sagen, dass ich diese Fehlermeldung in der parallel geöffneten Datei erhalte (sprich wenn ich dort etwas mit Enter bestätige). Ich bekomme diese zudem nur einmal (sprich wenn ich einmal auf Beenden geklickt habe, dann kann ich in dieser Datei auch wie gewohnt arbeiten).
Ich wäre dir/euch echt dankbar für eine Lösung, da mich dies total nervt.
Gruß
Dominik
AW: Makro startet in falscher Excel-Datei
02.11.2018 17:19:27
onur
If Intersect(Zelle, Union(Range("tbl..."), Range("tbl...")),...
Diesmal ist Range nicht eindeutig definiert, sondern nur global, das geht wie gesagt in einem Modul in die Hose.
AW: Makro startet in falscher Excel-Datei
02.11.2018 23:50:56
Dominik
Guten Abend onur,
dies habe ich doch nun auch gemacht. Mein Code im Modul lautet nun wie folgt
Public Sub DatumEintragenFreibetraege()
Dim Zelle As Range
Dim intOffset As Integer
Const cstrNameSheet As String = "Freibeträge"
intOffset = 1
If p_intSelectZeile = 0 Or p_intSelectSpalte = 0 Then
ActiveCell.Offset(1, 0).Select
Exit Sub
Else
Set Zelle = Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte)
If Intersect(Zelle, Union(Workbooks(m_cstrNameWorkbook).Sheets(cstrNameSheet).Range(" _
tblDominik"), Workbooks(m_cstrNameWorkbook).Sheets(cstrNameSheet).Range("tblAnja")), Columns(p_cintSpalteBetrag)) Is Nothing Then Exit Sub
modBlattschutz.BlattschutzAus
Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte).Offset(0, p_cintOffsetDatumBetrag). _
Value = Format(Date, "DD.MM.YYYY")
modBlattschutz.BlattschutzAn
Do While Sheet5.Cells(p_intSelectZeile + intOffset, p_intSelectSpalte).Locked = True
If intOffset > 100 Then
intOffset = 0
Exit Do
Else
intOffset = intOffset + 1
End If
Loop
Sheet5.Cells(p_intSelectZeile, p_intSelectSpalte).Offset(intOffset, 0).Select
End If
End Sub
Mir ist aber nicht klar warum ich immer noch ein Proble mit der Definition habe (scheinbar nun mit der Methode "Intersect" statt mit "Range". Kann ich dies überhaupt im Modul abändern oder schreibe ich dies Makro besser unter das Sheet?
Ich wünsche euch allen ein schönes Wochenende.
Gruß
Dominik
Anzeige
AW: Makro startet in falscher Excel-Datei
03.11.2018 07:56:41
Hajo_Zi
Hallo Dominik,
was mir auffällt
Columns(p_cintSpalteBetrag)
bezieht sich auf die aktuelle Tabelle nicht auf
Workbooks(m_cstrNameWorkbook).Sheets(cstrNameSheet)
Deine sonstigen Cells beziehen sich auch auf die aktuelle Tabelle.
Die Variablen m_cstrNameWorkbook und cstrNameSheet sind nicht belegt.
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Es sollte wohl eine Zip Datei mit beiden Dateien hochgeladen werden?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Makro startet in falscher Excel-Datei
03.11.2018 09:47:56
Dominik
Guten Morgen euch allen,
ich habe mir heute Morgen die Zeit genommen eine Datei für euch nachzubauen. Im Orginal gibt es noch deutlich mehr Blätter und sonstige Makros. Ich habe es nun wirklich auf den Fehler beschränkt.
Die Dateien findet Ihr unter den Links:
https://www.herber.de/bbs/user/125086.xlsm (Datei auf die das Makro beschränkt sein soll)
und
https://www.herber.de/bbs/user/125083.xlsm (Test-Datei in der der Fehler auftritt wenn die Datei mit Makro noch offen ist)
Mir ist aufgefallen, dass ich diesen Fehler immer bekommen wenn ich in der ersten Datei "Name:Test" einen Betrag "aktuallisiere" oder mit Enter bestätige (Beträge hinterlegt mit 99). Wenn ich dann in die andere Datei wechsele "Name:TestMappe2" und dort in der Tabelle etwas eintragen möchte, dann erhalte ich die Fehlermeldung (siehe Bild).
Userbild
Bitte meldet euch wenn ich euch noch eine Frage schuldig geblieben bin oder die Variablen noch abändern soll (ist bei dieser größe der Datei natrülich nicht mehr notwendig).
Gruß
Dominik
Anzeige
AW: Makro startet in falscher Excel-Datei
03.11.2018 08:40:09
Gerd
Moin,
die Methode Intersect funktioniert nur mit 2 Range innerhalb eines u. des selben Blattes.
Gruß Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige