Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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 erweitern

Makro erweitern
15.01.2009 09:12:00
Klaus
Guten Morgen zusammen
Ich habe folgendes Makro für die Überwachung, ob in der ersten freien Zelle ein Eintrag gemacht wird:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
If laR = 1 And Cells(1, 1).Value = "" Then laR = 0
If Target.Column  1 Then
If Cells(Target.Row, 1).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
Else
If Target.Row > 1 Then
If Target.Offset(-1, 0).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
laR = Cells(Rows.Count, 1).End(xlUp).Row
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
End If
End If
End Sub


Nun möchte ich dieses Makro erweitern, und zwar, wenn in der ersten freien Zelle ein "P" steht, soll 9 Zeilen weiter links die Zahl "20" automatisch eingetragen werden und die Schriftfarbe in der ganzen Zeile blau werden.
Kann mir jemand helfen?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nicht lösbar...
15.01.2009 10:04:21
Ramses
Hallo
Sorry, aber diese Anforderung ist nicht lösbar.
Du wählst Spalte 1 aus zur eingabe,... wie bitte soll 9 Zeilen weiter LINKS ein Eintrag erfolgen ?
Und wenn 9 Zeilen,... wieviel Spalten versetzt
Gruss rainer
AW: Nicht lösbar...
15.01.2009 10:17:36
A.
Hallo Klaus,
Rainer hat natürlich Recht, Zeilen beziehen sich auf oben/unten, während Spalten mit links/rechts beschrieben werden. Du solltest noch einmal genauer beschreiben, was Du exakt willst. :D
Hier schon mal ein Anfang:
(1) der folgende Makroteil müsste nur noch an der gewünschten Stelle in Deinem Makro eingebaut werden,
(2) die RangeVariable rChk muss klar definiert werden, denn ich hatte hier nur ein Beispiel "K11" definiert. (Was meinst Du genau mit "nächste freie Zeile"? Und was meinst Du mit "P" genau? Dass nur und exakt ein einzelner Großbuchstabe "P" dort steht?)
Andy
'==============================================
Dim rChk As Range
'definiere: erste freie Zelle
Set rChk = Range("K11")
'Falls Wert "P" ...
If CStr(rChk.Value) = "P" Then
'... so trage den Wert "20" in der gleichen Reihe, jedoch 9 Spaten weiter links ein
rChk.Offset(0, -9).Value = 20
'... und färbe die ganze Zeile ein
ActiveSheet.Rows(CStr(rChk.Row) & ":" & CStr(rChk.Row)).Interior.ColorIndex = 28 'andere Blautöne: 42,5
End If
End Sub


'===========================================


Sub showAllColours()
'Dieses kleine Makro liefert Farben nd ihre entsprechenden ColorIndex-Zahlen.
' (Es hilft beim Aussuchen von Farben.)
Dim i As Integer
For i = 1 To 55
ActiveSheet.Cells(i, 1).Value = i
ActiveSheet.Cells(i, 2).Interior.ColorIndex = i
Next i
End Sub


'===========================================

Anzeige
AW: Nicht lösbar...
15.01.2009 10:18:32
Klaus
Hallo Rainer
Sorry, das soll natürlich 9 Zeilen weiter nach rechts heissen. Also, wenn in Spalte A ein "P" eingegeben wird wird dann in der gleichen Zeile in Spalte J "20" eintragen
tschulligung, aber...loooooooooool...owT
15.01.2009 10:31:00
Oberschlumpf
AW: tschulligung, aber...loooooooooool...owT
15.01.2009 11:07:29
Klaus
Ich fang nochmal an........
Mit dem folgenden Makro frage ich die erste freie Zelle in Spalte A ab.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
If laR = 1 And Cells(1, 1).Value = "" Then laR = 0
If Target.Column  1 Then
If Cells(Target.Row, 1).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
Else
If Target.Row > 1 Then
If Target.Offset(-1, 0).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
laR = Cells(Rows.Count, 1).End(xlUp).Row
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
End If
End If
End Sub


wenn nun in der ausgewählten Zelle ein "P" eingegeben wird, soll in der gleichen Zeile in Spalte J die Zahl "20" eingetragen werden. Gleichzeitig soll die Schriftfarbe in der ganzen Zeile blau werden.
Ich hoffe, nun ist es verständlich
Gruss Klaus

Anzeige
AW: tschulligung, aber...loooooooooool...owT
15.01.2009 11:16:55
Oberschlumpf
Hi Klaus :)
War aber auch lustig.
Zuerst schreibste "20 Zeilen weiter links", was ja nich geht, weil Zeilen eben nur oben und unten geht, und dann schreibste "20 Zeilen weiter rechts"...hihi...was genau so nich geht :-))
Versuch es mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
If laR = 1 And Cells(1, 1).Value = "" Then laR = 0
If Target.Column  1 Then
If Cells(Target.Row, 1).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
Else
If Target.Row > 1 Then
If Target.Offset(-1, 0).Value = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
laR = Cells(Rows.Count, 1).End(xlUp).Row
Cells(laR + 1, 1).Select
MsgBox "Erst eine Angebotsnummer eingeben!"
End If
End If
End If
    If Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Value = "P" Then
Range("J" & Cells(Rows.Count, 1).End(xlUp).Row).Value = 20
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Interior.ColorIndex = 5
End If
End Sub


Hilfts?
Ciao
Thorsten

Anzeige
AW: tschulligung, aber...loooooooooool...owT
15.01.2009 11:27:25
Klaus
Hallo Thorsten
funktioniert ganz gut, aber die Schriftfarbe haut noch nicht hin. In deinem Makro wird nur der Hintergrund von Spalte A+B eingefärbt.
AW: tschulligung, aber...loooooooooool...owT
15.01.2009 11:31:00
Klaus
Hallo Thorsten
Funktioniert ganz gut, aber mit der Schriftfarbe haut es nicht hin. In deinem Makro werden nur in Spalte A+B der Hintergrund blau eingefärbt
AW: ohne lool weiter :)
15.01.2009 11:46:46
Oberschlumpf
Hi Klaus
Ok..Asche auf mein Haupt...das war MEIN Fehler!
Du schreibst "Schriftfarbe in blau"...und ich machte daraus den Zellenhintergrund in blau.
Ändere meinen Code mal so um:

If Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Value = "P" Then
Range("J" & Cells(Rows.Count, 1).End(xlUp).Row).Value = 20
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Font.ColorIndex = 5
End If


Warum allerdings bei dir nur Spalte A + B betroffen waren, weiß ich auch nicht.
Sowohl die Hintergrund- als auch nun die Textfarbe betrifft bei mir die ganze Zeile.
Klappts denn nun (besser)?
Ciao
Thorsten

Anzeige
Hat sich erledigt
15.01.2009 12:16:55
Klaus
Alles Klar, Hat sich erledigt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige