Supportnet / Forum / Tabellenkalkulation
Zellen automatisch ausfüllen
Frage
Hallo!
Ich habe in einer Tabelle in der ersten Zeile Postleitzahlen und Postleitzzahlenbereiche zur Auswahl stehen (Zuständigkeiten MA).
Die Reihe ist so aufgebaut, dass zuerst immer die 1. Stelle steht und dann jeweils 10 x die ersten beiden Stellen. Also:
0 - 00 - 01 - 02 - ... - 09 - 1 - 10 - 11 - 12 - ...
Wenn jetzt ein Mitarbeiter zuständig ist für einen gesamten PLZ-Bereich, z.B. PLZ 6, ist, soll nur die Zelle mit der "6" angekreuzt werden und die folgenden 10 Zellen (60, 61, 62, ..., 69) werden von selbst ausge"x"t...
Vielen Dank und Grüße
Jones
Antwort 1 von Aliba
Hi Jones,
ich hoffe mal alles richtig verstanden zu haben:
1. In Zeile 1 stehen die Werte:
B1 0
C1 00
D1 01
bis L1 09
Dann in
M1 1
N1 10
O1 11
usw..
In Spalte A hast Du dann wahrscheinlich beginnend in A2 die MA´s stehen.
Ich würde Dir raten, die Anfangszahlen 0-9 in die ersten Spalten zu setzen.
Folgende VOrteile:
1. Du kannst die Formel im Anschluss einfach nach rechts und unten kopieren, ohne die Spalten mit den Einzelziffern auszulassen.
2. Du musst nicht soweit nach rechts scrollen, um das x z.B. unter die 9 zu machen
3. Du kannst die Ziffernreihe 00 bis 99 einfach durch Ziehen nach rechts erzeugen, indem du in L1 0 und in M1 1 schreibst, diese beiden Zellen dann markierst und am Anfasser unten rechts nach rechts bis zur 99 ziehst.
Also ist die Tabelle dann jetzt so aufgebaut:
A1 leer
B1 0
C1 1
D1 2
E1 3
F1 4
G1 5
H1 6
I1 7
J1 8
K1 9
L1 00
M1 01
bis
DG1 99
So nun die Formel in L2:
=WENN(WVERWEIS(GANZZAHL(L$1/10);$B$1:$K$20;ZEILE(A2);0)="x";"x";"")
Diese bis Spalte DG nach rechts und Zeile 20 nach unten kopieren/ziehen.
Sollten mehr als 19 Mitarbeiter benötigt werden, dann K20 ändern in z.B K30, wenn 29 MA benötigt werden. Und die Formel dann eben auch entsprechend weit nach unten ziehen.
CU Aliba
ich hoffe mal alles richtig verstanden zu haben:
1. In Zeile 1 stehen die Werte:
B1 0
C1 00
D1 01
bis L1 09
Dann in
M1 1
N1 10
O1 11
usw..
In Spalte A hast Du dann wahrscheinlich beginnend in A2 die MA´s stehen.
Ich würde Dir raten, die Anfangszahlen 0-9 in die ersten Spalten zu setzen.
Folgende VOrteile:
1. Du kannst die Formel im Anschluss einfach nach rechts und unten kopieren, ohne die Spalten mit den Einzelziffern auszulassen.
2. Du musst nicht soweit nach rechts scrollen, um das x z.B. unter die 9 zu machen
3. Du kannst die Ziffernreihe 00 bis 99 einfach durch Ziehen nach rechts erzeugen, indem du in L1 0 und in M1 1 schreibst, diese beiden Zellen dann markierst und am Anfasser unten rechts nach rechts bis zur 99 ziehst.
Also ist die Tabelle dann jetzt so aufgebaut:
A1 leer
B1 0
C1 1
D1 2
E1 3
F1 4
G1 5
H1 6
I1 7
J1 8
K1 9
L1 00
M1 01
bis
DG1 99
So nun die Formel in L2:
=WENN(WVERWEIS(GANZZAHL(L$1/10);$B$1:$K$20;ZEILE(A2);0)="x";"x";"")
Diese bis Spalte DG nach rechts und Zeile 20 nach unten kopieren/ziehen.
Sollten mehr als 19 Mitarbeiter benötigt werden, dann K20 ändern in z.B K30, wenn 29 MA benötigt werden. Und die Formel dann eben auch entsprechend weit nach unten ziehen.
CU Aliba
Antwort 2 von JonesM
Hi Aliba (und nigthy), ;)
vielen Dank erst einmal. Das ist schon eimal ein guter Ansatz und ich habe es bereits umgesetzt. Die Datei muss nämlch heute noch auf den Server. :)
Fällt euch noch etwas mittels Makro ein?
Ich habe einmal einen U-Plan erstellt, der mittels einfacher CASE-Anweisung Eintragungen farblich hinterlegt. Etwas in der Art muss doch auch möglich sein, um die Zellen mit Text ("x") auszufüllen, wenn bestimmte Bedingungen ("x" in bestimmter Zelle) erfüllt sind!?!
Vielen Dank und Grüße
Jones
vielen Dank erst einmal. Das ist schon eimal ein guter Ansatz und ich habe es bereits umgesetzt. Die Datei muss nämlch heute noch auf den Server. :)
Fällt euch noch etwas mittels Makro ein?
Ich habe einmal einen U-Plan erstellt, der mittels einfacher CASE-Anweisung Eintragungen farblich hinterlegt. Etwas in der Art muss doch auch möglich sein, um die Zellen mit Text ("x") auszufüllen, wenn bestimmte Bedingungen ("x" in bestimmter Zelle) erfüllt sind!?!
Sub Worksheet_Change(ByVal Target As Range)
Select Case UCase(Target.Text)
Case "Url"
Target.Interior.ColorIndex = 6
Case "Leh"
Target.Interior.ColorIndex = 4
Case "Glz"
Target.Interior.ColorIndex = 39
Case ""
Target.Interior.ColorIndex = 0
Case " "
Target.Interior.ColorIndex = 0
Case Else
End Select
End Sub
Vielen Dank und Grüße
Jones
Antwort 3 von nighty
hi jones :)
hier ein paar varianten :)
gruss nighty
einzufuegen unter alt f11(vbeditor)/projektexplorer/DeineTabelle
bei diesen beispiel wird in zelle A1 ein x durch den text test ersetzt
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 And Target = "x" Then
Target = "test"
End If
End Sub
bei diesen beispiel wird in zelle B2 der text "test1" vorrausgesetzt und ein x im target
und dann durch "test" das target ersetzt
If cells(2,2) = "test1" And Target = "x" Then Target = "test"
End If
bei diesen beispiel wird in zelle B2 der text "test1" vorrausgesetzt und ein x in A1 verlangt,inhalt von A1 dann durch "test" ersetzt
If cells(2,2) = "test1" And Target.Row = 1 And Target.Column = 1 And Target = "x" _
Then Target = "test"
hier ein paar varianten :)
gruss nighty
einzufuegen unter alt f11(vbeditor)/projektexplorer/DeineTabelle
bei diesen beispiel wird in zelle A1 ein x durch den text test ersetzt
Private Sub worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 And Target = "x" Then
Target = "test"
End If
End Sub
bei diesen beispiel wird in zelle B2 der text "test1" vorrausgesetzt und ein x im target
und dann durch "test" das target ersetzt
If cells(2,2) = "test1" And Target = "x" Then Target = "test"
End If
bei diesen beispiel wird in zelle B2 der text "test1" vorrausgesetzt und ein x in A1 verlangt,inhalt von A1 dann durch "test" ersetzt
If cells(2,2) = "test1" And Target.Row = 1 And Target.Column = 1 And Target = "x" _
Then Target = "test"
Antwort 4 von JonesM
Hallo!
Habe das Problem jetzt folgendermaßen gelöst:
Funktioniert auch soweit. Jetzt habe ich aber noch zwei Fragen:
1. Wie kann ich die Else-Anweisung als Schleife darstellen?
2. Was muss ich ändern, damit die X wieder gelöscht werden, wenn ich in der Ursprungsspalte das X lösche?
Vielen Dank und Grüße
Jones
Habe das Problem jetzt folgendermaßen gelöst:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("y3:y200")) Is Nothing Then
Else
Target.Offset(0, 1).Value = "x"
Target.Offset(0, 2).Value = "x"
Target.Offset(0, 3).Value = "x"
Target.Offset(0, 4).Value = "x"
Target.Offset(0, 5).Value = "x"
Target.Offset(0, 6).Value = "x"
Target.Offset(0, 7).Value = "x"
Target.Offset(0, 8).Value = "x"
Target.Offset(0, 9).Value = "x"
Target.Offset(0, 10).Value = "x"
End If
End Sub
Funktioniert auch soweit. Jetzt habe ich aber noch zwei Fragen:
1. Wie kann ich die Else-Anweisung als Schleife darstellen?
2. Was muss ich ändern, damit die X wieder gelöscht werden, wenn ich in der Ursprungsspalte das X lösche?
Vielen Dank und Grüße
Jones
Antwort 5 von nighty
hi jones :)
hier meine variante :)
gruss nighty
hier meine variante :)
gruss nighty
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Do
If zaehler1 = 11 Then Exit Do
zaehler1 = zaehler1 + 1
If Target.Value = "x" And Target.Column = 1 Then
Cells(Target.Row, zaehler1) = "x"
Else
Cells(Target.Row, zaehler1) = ""
End If
Loop
Application.EnableEvents = True
End Sub
Antwort 6 von nighty
hi jones :)
korrigiert :)
gruss nighty
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zaehler1
zaehler1 = 24
Application.EnableEvents = False
Do
If zaehler1 = 35 Or Target.Column <> 25 Or Target.Row < 3 Or Target.Row > 200 Then Exit Do
zaehler1 = zaehler1 + 1
If Target.Value = "x" Then
Cells(Target.Row, zaehler1) = "x"
Else
Cells(Target.Row, zaehler1) = ""
End If
Loop
Application.EnableEvents = True
End Sub
korrigiert :)
gruss nighty
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zaehler1
zaehler1 = 24
Application.EnableEvents = False
Do
If zaehler1 = 35 Or Target.Column <> 25 Or Target.Row < 3 Or Target.Row > 200 Then Exit Do
zaehler1 = zaehler1 + 1
If Target.Value = "x" Then
Cells(Target.Row, zaehler1) = "x"
Else
Cells(Target.Row, zaehler1) = ""
End If
Loop
Application.EnableEvents = True
End Sub
Antwort 7 von JonesM
Hallo Nighty!
Du wirst mir so langsam unheimlich! ;-))
Wo kann ich das Bier hinschicken?
Vielen Dank und Grüße
Jones
Du wirst mir so langsam unheimlich! ;-))
Wo kann ich das Bier hinschicken?
Vielen Dank und Grüße
Jones