Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2003] Makro-Problem
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
taad
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 23.06.2009
Beiträge: 13

BeitragVerfasst am: 23.06.2009, 13:43 Nach oben

Hallo

Mein Problem ist folgendes:

Zum einen möchte ich, dass sich das Register automatisch nach der Zelle $B$6 benennt, wenn in der Zelle $B$4 etwas verändert wird.

Ausserdem soll sich die Farbe des Registers entsprechend dem Inhalt der Zelle $A$11 (1=rot; 2=grün; 0=blau) automatisch verändern, wenn in den Zellen $B$8:$B$9 etwas verändert wird.

Das Makro muss jeweils für das entsprechende register gültig sein, da es möglich sein muss beliebig viele Register mit diesen Bedingungen zu haben.

Habe mal was versucht, wo das mit den Farben aber nicht funktioniert:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B4:B4")) Is Nothing Then
On Error GoTo fehlermeldung
If Target = "" Then Exit Sub
ActiveSheet.Name = Range("B6").Value
End If

If Not Application.Intersect(Target, Range("B8:B9")) Is Nothing Then
If Range("A11") = "1" Then ActiveWorksheet.Tab.ColorIndex = 3
ElseIf Range("A11") = "2" Then ActiveWorksheet.Tab.ColorIndex = 4
ElseIf Range("A11") = "0" Then ActiveWorksheet.Tab.ColorIndex = 37

End If

Exit Sub

fehlermeldung:
MsgBox "Grober Fehler: Komplex schon vorhanden! Registername wurde nicht verändert!"
End Sub


Könnt ihr mir helfen?

Danke!!
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 796
Wohnort: Neubrandenburg

BeitragVerfasst am: 23.06.2009, 14:11 Nach oben

ich hätte die Aufgabe so interpretiert unter DieseArbeitsmappe
Code:

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$B$4" Then ActiveSheet.Name = Range("B6")
    If Not Application.Intersect(Target, Range("B8:B9")) Is Nothing Then
        Select Case Target.Value
            Case 1
                ActiveSheet.Tab.ColorIndex = 3
            Case 2
                ActiveSheet.Tab.ColorIndex = 4
            Case 0
                ActiveSheet.Tab.ColorIndex = 37
            Case Else
                ActiveSheet.Tab.ColorIndex = xlNone
        End Select
    End If
End Sub

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010 Retail. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
taad
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 23.06.2009
Beiträge: 13

BeitragVerfasst am: 23.06.2009, 14:59 Nach oben

Hallo

Leider funktioniert die automatische Namensänderung des Registers nicht.

Auch die Farbänderung funktioniert nicht.

Bei der Farbänderung ist noch folgendes wichtig: Sobald in den Feldern $B$8 oder $B$9 etwas verändert wird, soll der Wert aus der Zelle $A$11 die Farbe bestimmen.


Danke für die Hilfe.
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 796
Wohnort: Neubrandenburg

BeitragVerfasst am: 23.06.2009, 15:01 Nach oben

bei mir geht es ersetze die Zahl durch Range("A1"), das Stand nicht im ersten Beitrag.

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010 Retail. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
taad
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 23.06.2009
Beiträge: 13

BeitragVerfasst am: 23.06.2009, 15:06 Nach oben

Vielleich haben wir uns falsch verstanden.

Wenn ich in den Zellen $B$8 oder $B$9 etwas ändere, schaut Excel, was in der Zelle $A$11 steht. Wenn dort eine "1" steht, wird das Register rot, wenn eine "2" steht grün, sonst blau.

Danke und Gruss
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 796
Wohnort: Neubrandenburg

BeitragVerfasst am: 23.06.2009, 15:09 Nach oben

dann schreibe nicht "A1" sondern "A11". Die zahl nach = war gemeint

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010 Retail. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
taad
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 23.06.2009
Beiträge: 13

BeitragVerfasst am: 23.06.2009, 15:29 Nach oben

Wäre das so richtig? In den Zellen $B$8 und $B$9 kann man nur Ja oder Nein auswählen. In der Zelle $A$11 steht dann der Wert, welche Farbe genommen werden soll.

Schön wäre noch, wenn ein Register nach einem schon vorhandenen benannt werden soll, eine Fehlermeldung erscheintl.

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$B$4" Then ActiveSheet.Name = Range("B6")
If Not Application.Intersect(Target, Range("B8:B9")) Is Nothing Then
Select Case Target.Value
Case 1
ActiveSheet.Tab.ColorIndex = Range("A11")
Case 2
ActiveSheet.Tab.ColorIndex = Range("A11")
Case 3
ActiveSheet.Tab.ColorIndex = Range("A11")
Case Else
ActiveSheet.Tab.ColorIndex = xlNone
End Select
End If
End Sub
Benutzer-Profile anzeigenPrivate Nachricht senden
Hajo_Zi
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.05.2008
Beiträge: 796
Wohnort: Neubrandenburg

BeitragVerfasst am: 23.06.2009, 15:35 Nach oben

Code:

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$B$4" Then
        Dim WsTabelle As Worksheet
        For Each WsTabelle In Worksheets
            If WsTabelle.Name = Range("B4") Then
                Beep
                MsgBox "Die Tabelle ist schon vorhaden!"
                Exit Sub
            End If
        Next WsTabelle
        ActiveSheet.Name = Range("B6")
    ElseIf Not Application.Intersect(Target, Range("B8:B9")) Is Nothing Then
        Select Case Target.Value
            Case 1
                ActiveSheet.Tab.ColorIndex = Range("A11")
            Case 2
                ActiveSheet.Tab.ColorIndex = Range("A11")
            Case 0
                ActiveSheet.Tab.ColorIndex = Range("A11")
            Case Else
                ActiveSheet.Tab.ColorIndex = xlNone
        End Select
    End If
End Sub

_________________
Betriebssystem: Windows 7 - 64 Bit, Office 2010 Retail. Bitte Version angeben. Bei keiner Angabe gehe ich von meinem Angaben aus. Mails nur nach Aufforderung.
Benutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen
taad
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 23.06.2009
Beiträge: 13

BeitragVerfasst am: 23.06.2009, 16:28 Nach oben

Muss nochmal stören

In den Zellen $B$8 und $B$9 kann ich "Ja" oder "Nein" auswählen (Gültigkeit/Liste). Daraus ergibt sich in der Zelle $A$11 via wenn-dann-Formel ein Faktor (1; 2 oder 0).

Bei dem Faktor 1 soll das Register rot, bei 2 grün und bei 0 blau angezeigt werden.

Auslöser für die Ausführung soll eine Änderung in den Zellen $B$8 oder $B$9 sein.

Das funktioniert bisher noch nicht.

ElseIf Not Application.Intersect(Target, Range("B8:B9")) Is Nothing Then
Select Case Target.Value
Case 1
ActiveSheet.Tab.ColorIndex = Range("A11")
Case 2
ActiveSheet.Tab.ColorIndex = Range("A11")
Case 0
ActiveSheet.Tab.ColorIndex = Range("A11")
Case Else
ActiveSheet.Tab.ColorIndex = xlNone
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Excel07-Makro: alle Kombinationen von... DennisHamburg Microsoft Excel Hilfe 5 11.03.2010, 14:31 Letzten Beitrag anzeigen
Keine neuen Beiträge dbsumme als makro hänsel Microsoft Excel Hilfe 3 10.03.2010, 10:04 Letzten Beitrag anzeigen
Keine neuen Beiträge Hilfe zu Makro !!hilfe!! Microsoft Excel Hilfe 5 10.03.2010, 08:12 Letzten Beitrag anzeigen
Keine neuen Beiträge Einfaches Problem... Dirk Microsoft Excel Hilfe 1 09.03.2010, 20:01 Letzten Beitrag anzeigen
Keine neuen Beiträge Sverweis, Problem mit Matrix Satsuki Microsoft Excel Hilfe 12 09.03.2010, 16:02 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Tuning Forum | krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole


Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de