Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde

Forumthread: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde

Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 10:35:29
Michael
Hallo,

ich will ein Macro erstellen, das folgenden Code in ein Sheet einfügt:
Private Sub worksheet_change(ByVal Target As Range)


' Check if the changed cell is CO20 or CR18
If Not Intersect(Target, Range("CO20")) Is Nothing Then
If Range("CV23").Value > 0.05 Then
MsgBox "BLA!!!"
End If
End If
End Sub


Wie kann ich das machen?
Danke für eure Hilfe!

Michael
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 10:41:08
ralf_b
Erklärst du das etwas genauer?
Soll der Code in ein Blatt in der selben Datei oder in eine andere Datei?
Betrifft das mehrere Blätter oder nur ein Bestimmtes?

bei Excel-profi und VBA gut Einschätzung, gehe ich davon aus das du weist das man die ChangeEvents der Blätter auch im Workbook CodeModul abfangen kann.
Aber man weis ja nie.
Anzeige
AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 10:48:57
Michael
Hallo,

danke für Deine rasche Antwort.

Ich will in ein bestimmtes Sheet "ResUsage" in ActiveWorkbook den o.g. Code einfügen

das u.g. sagt mir "noch" nix!? Vielleicht bin ich noch nicht Profi genug :-/
bei Excel-profi und VBA gut Einschätzung, gehe ich davon aus das du weist das man die ChangeEvents der Blätter auch im Workbook CodeModul abfangen kann.
Aber man weis ja nie.
Anzeige
AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 11:01:25
Michael
Wenn ich den Code, den ich in der Private Sub im Sheet in den Macro Code beim Modul einfüge verwende, bekomme ich einen Runtime Error 424 Object Required
If Not Intersect(Target, Range("CO20")) Is Nothing Then
If Range("CV23").Value > 0.05 Then
MsgBox "New Sizing differs from Old Sizing by more than 5% !" & vbCrLf & _
"Please check New Sizing!!!"
End If
End If

Wie muss der Code aussehen, damit ich ihn gleich im Modul einfügen kann?
Anzeige
AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 11:33:15
ralf_b
worauf ich hinaus will, ist festzustellen ob der Code in das VBA Project einer anderen! Datei eingefügt werden soll oder in die selbe Datei in der du gerade bist.
ActiveWorkbook deutet darauf hin das du nicht zwingend die gleiche Datei bearbeiten möchtest in der du gerade programmierst.
Deshalb ist es wichtig zu erfahren was da genau! ablaufen soll.

die Manipulation der VBE einer Datei zur Laufzeit ist keine Alltagsaufgabe.
Anders so ein schnödes Changeevent in der selben Datei. Das wäre dann sowas. Aber auch hier ist nicht die Eintragung zur Laufzeit gezeigt.



'Beispiel für das Codemodul DieseArbeitsmappe
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "ResUsage" Then
If Target.Address = "$CO$20" Or Target.Address = "$CR$18" Then
If Sh.Range("CV23").Value > 0.05 Then MsgBox "New Sizing differs from Old Sizing by more than 5% !" & vbCrLf & " Please check New Sizing!!!"
End If
End If
End Sub

'Beispiel für das Codemodul des Blattes "ResUsage"
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$CO$20" Or Target.Address = "$CR$18" Then
If Range("CV23").Value > 0.05 Then MsgBox "New Sizing differs from Old Sizing by more than 5% !" & vbCrLf & " Please check New Sizing!!!"
End If
End Sub

Anzeige
AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 12:15:55
Michael
also was ich brauche wäre letzteres. Einen ähnlichen Code hab ich für das Blatt "ResUsage" bereits erstellt und er funktioniert auch, aber was ich brauche, wäre ein Macro, das ich aus einer anderen Date aufrufe, in das Blatt "ResUsage" als Code einfügt.

AW: Erstellen eines Makros, das in ein bestimmtes Sheet VBA COde
20.09.2024 12:52:12
Michael
ich hab die Lösung selbst gefunden!
Sheets("ResUsage").Select
With ActiveWorkbook.VBProject.VBComponents("ResUsage").CodeModule
.AddFromString "Private Sub worksheet_change(ByVal Target As Range)" & vbCrLf & _
"" & vbCrLf & _
"" & vbCrLf & _
" ' Check if the changed cell is CO20 or CR18" & vbCrLf & _
" If Not Intersect(Target, Range(""CO20"")) Is Nothing Then" & vbCrLf & _
" If Range(""CV23"").Value > 0.05 Then" & vbCrLf & _
" MsgBox ""New Sizing differs from Old Sizing by more than 5% !"" & vbCrLf & _" & vbCrLf & _
" ""Please check New Sizing!!!""" & vbCrLf & _
" End If" & vbCrLf & _
" End If" & vbCrLf & _
" If Not Intersect(Target, Range(""CR18"")) Is Nothing Then" & vbCrLf & _
" If Range(""CV23"").Value > 0.05 Then" & vbCrLf & _
" MsgBox ""New Sizing differs from Old Sizing by more than 5% !"" & vbCrLf & _" & vbCrLf & _
" ""Please check New Sizing!!!""" & vbCrLf & _
" End If" & vbCrLf & _
" End If" & vbCrLf & _
"" & vbCrLf & _
"End Sub"
' & strNameOfSheet
End With

Anzeige

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige