online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon mariamaria vom 16.09.2021, 15:02 Options

VBA start bei Änderung

Hey Ihr,

hab mir ein VBA geschrieben und komme aber nicht weiter.
Das Makro ist ein der Tabelleblatt2.
Das Makro startet automatisch bei Änderung des Zelleninhaltes.
Aber stoppt, wenn ich einen Befehl im Tabellenblatt1 ausführenlassen will.
ist das überhaupt wenn ja wie?
denn bei mir kommt immer die Fehlermeldung.

Danke


Antwort schreiben

Antwort 1 von coros vom 16.09.2021, 15:09 Options

Hallo,

wie sollen wir Dir helfenden Fehler zu finden, wenn Du nicht Dein bereits bestehendes Makro hier postest?

Bitte zeige uns Dein bereits bestehendes Makro.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von mariamaria vom 16.09.2021, 15:12 Options

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngBereich As Range
Dim lngLetzteZeile As Long
Dim suchbegriff1, suchbegriff2 As Variant
Dim rngMeine1Zelle, rngMeine2Zelle As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False

lngLetzteZeile = Range("B" & Range("B:B").Rows.Count).End(xlUp).Row
Set rngBereich = Range("A2:A" & lngLetzteZeile)
If Not Intersect(Target, rngBereich) Is Nothing Then

Name = ActiveSheet.Name

Sheets("Übersicht").Select
lastRM = Sheets("Übersicht").Range(Cells(17, 9999), Cells(17, 9999)).End(xlToLeft).Column
Sheets("Übersicht").Range(Cells(17, 1), Cells(10000, 10000)).Interior.Color = vbWhite

Sheets(Name).Select
last = Sheets(Name).Range(Cells(99999, 2), Cells(99999, 2)).End(xlUp).Row

For i = 2 To last Step 1

If Sheets(Name).Cells(i, 1) = "RELEVANT" Then
suchbegriff1 = Sheets(Name).Cells(i, 4).Value
suchbegriff2 = Sheets(Name).Cells(i, 5).Value
Sheets("Übersicht").Select
For Each rngMeine1Zelle In Sheets("Übersicht").Range(Cells(15, 1), Cells(15, lastRM)).Cells
If suchbegriff1 = rngMeine1Zelle.Value Then
zeile = rngMeine1Zelle.Row
spalte = rngMeine1Zelle.Column
unten = Sheets("Übersicht").Range(Cells(99999, spalte), Cells(99999, spalte)).End(xlUp).Row
For Each rngMeine2Zelle In Sheets("Übersicht").Range(Cells(zeile + 2, spalte), Cells(unten, spalte)).Cells

If suchbegriff2 = rngMeine2Zelle.Value Then
rngMeine2Zelle.Offset(0, 0).Interior.Color = vbRed
End If
Next
End If
Next
End If
Next
End If
Set rngBereich = Nothing
End Sub

Antwort 3 von mariamaria vom 16.09.2021, 15:30 Options

kurz zur info:

habe 5 unterschiedliche tabellen
und eine Übersichtstabelle

wenn in einer der 5 Tabellen in der Spalte A zu dem jeweiligen Datensatz ein "Relevant" hinzugefügt wird, dann möchte ich das in der Übersicht Rot gekennzeichnet haben.

Dafür soll nach zwei begriffen gesucht werden.
Der erste ist die Gruppe und der andere Begriff ist das Produkt.


Danke für die Hilfe

Antwort 4 von mariamaria vom 16.09.2021, 16:34 Options

hallo coros,

hoffe du findest einen Weg. :-)

Danke

Antwort 5 von coros vom 16.09.2021, 16:57 Options

Hallo mariamaria,

das ist mir etwas zu kompliziert zu verstehen. Da ich auch keine Lust habe, mir eine Beispieldatei zu erstellen, die annähernd so ist wie Deine die Frage: Kannst Du mal eine Beispieldatei z.B. bei http://rapidshare.com hochladen und den Link, den Du erhälst hier dann posten?

Wann kommt bei Dir die Fehlermeldung? Welche Zeile im VBA-Code wird gelb markiert, wenn Du in der Dialogbox des Laufzeitfehlers auf den Button "Debuggen" klickst?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von mariamaria vom 16.09.2021, 17:12 Options

Der Code wie folgt funktioniert als Makro.
Aber wenn ich es in einen Tabellenblatt reinschreibe, dass es automatisch losgehen soll, wenn ich in der Spalte A was ändere, startet es. Doch bringt bei der Zeile ab, die mit "lastRM" anfängt.
Meine Vermutung ist, dass es bei dem Wechsel von Tabellenblätter Probleme ab.

Kann das sein??

Sub Markieren()
Dim suchbegriff1, suchbegriff2 As Variant
Dim rngMeine1Zelle, rngMeine2Zelle As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Name = ActiveSheet.Name
Main = Sheets("Übersicht").Name

Sheets(Main).Select
lastRM = Sheets(Main).Range(Cells(17, 9999), Cells(17, 9999)).End(xlToLeft).Column
Sheets(Main).Range(Cells(17, 1), Cells(10000, lastRM)).Interior.Color = vbWhite

Sheets(Name).Select
last = Sheets(Name).Range(Cells(99999, 2), Cells(99999, 2)).End(xlUp).Row

For i = 2 To last Step 1

If Sheets(Name).Cells(i, 1) = "RELEVANT" Then
suchbegriff1 = Sheets(Name).Cells(i, 4).Value
suchbegriff2 = Sheets(Name).Cells(i, 5).Value
Sheets(Main).Select
For Each rngMeine1Zelle In Sheets(Main).Range(Cells(15, 1), Cells(15, lastRM)).Cells
If suchbegriff1 = rngMeine1Zelle.Value Then
zeile = rngMeine1Zelle.Row
spalte = rngMeine1Zelle.Column
unten = Sheets(Main).Range(Cells(99999, spalte), Cells(99999, spalte)).End(xlUp).Row
For Each rngMeine2Zelle In Sheets(Main).Range(Cells(zeile + 2, spalte), Cells(unten, spalte)).Cells

If suchbegriff2 = rngMeine2Zelle.Value Then
rngMeine2Zelle.Offset(0, 0).Interior.Color = vbRed
End If
Next
End If
Next
End If
Next
End Sub

Antwort 7 von coros vom 16.09.2021, 17:15 Options

Hallo,

dass muss man testen. Da ich aber keine Lust habe mir eine Datei zu erstellen, die Du bereits fertig vor Dir hast, hatte ich Dich gebeten eine Beispieldatei hochzuladen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von mariamaria vom 16.09.2021, 17:18 Options

danke erst mal..
ich schau mal ob ich das hinbekomme.. wenn es klappt schick ich dir den link

Ähnliche Themen

VBA - 1:1-Dateikopie
Tomschi  14.04.2008 - 2 Hits - 6 Antworten

VBA
gropi  23.04.2008 - 50 Hits - 1 Antwort

VBA
Benjo_pont  03.07.2008 - 130 Hits - 2 Antworten

VBA
Chrissi_Li  21.08.2008 - 32 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026