Hallo an Alle,
und zwar hab ich ein kleines Problem, welches ich schon einmal gepostet habe aber keine Zufriedenstellende Antwort bekommen habe.
Und Zwar habe ich einen Code, der meine Spalten und Zeilen erweitert. Das funtioniert auch super, das Problem ist, wenn ich Zellen, Zeilen, Spalten wieder entferne, passt er dies nicht wieder automatisch an.
Z. B. Wenn ich "WP" zwischen den Zeilen, "WP1300 und "WP1100" die Zelle "WP1200" lösche, soll sich diese wieder automatisch anpassen, sodass aus "WP1300" wieder "WP1200" wird.
Zu dem hab ich noch ein rein kosmetisches Problem, das mich imens stört.
Und zwar hab ich eine Färbung, wie man in dem Code sehen, kann mit eingefügt, dass die Zellen auf Knopfdruck färbt. Allerdings färbt es auch die nachfolgenden Zellen, die nicht gefärbt werden sollen, kann ich das irgendwie abschalten, dass die Farbe nicht auf die benachbarten Zellen übertragen werden?
Da ich nicht weis, wie ich hier in diesem Forum, die Zellen aus dem Excel ins Forum übertrage hab ich einen Screenshot davon gemacht und es mal angehängt.
Hier in der angehängten Abbildung seht ihr auch mein kosmetisches Proble, welches mich so stört.
Hier der Code zu meinem Hauptproblem und Färbung:
[line] [/line]
Code:
[line] [/line]
Ich hoffe, Ihr könnt mir evtl, weiterhelfen.
Viele Grüße
France
Edit by Dodo:
-> Topic verschoben (Grundlagen => VBA)
und zwar hab ich ein kleines Problem, welches ich schon einmal gepostet habe aber keine Zufriedenstellende Antwort bekommen habe.
Und Zwar habe ich einen Code, der meine Spalten und Zeilen erweitert. Das funtioniert auch super, das Problem ist, wenn ich Zellen, Zeilen, Spalten wieder entferne, passt er dies nicht wieder automatisch an.
Z. B. Wenn ich "WP" zwischen den Zeilen, "WP1300 und "WP1100" die Zelle "WP1200" lösche, soll sich diese wieder automatisch anpassen, sodass aus "WP1300" wieder "WP1200" wird.
Zu dem hab ich noch ein rein kosmetisches Problem, das mich imens stört.
Und zwar hab ich eine Färbung, wie man in dem Code sehen, kann mit eingefügt, dass die Zellen auf Knopfdruck färbt. Allerdings färbt es auch die nachfolgenden Zellen, die nicht gefärbt werden sollen, kann ich das irgendwie abschalten, dass die Farbe nicht auf die benachbarten Zellen übertragen werden?
Da ich nicht weis, wie ich hier in diesem Forum, die Zellen aus dem Excel ins Forum übertrage hab ich einen Screenshot davon gemacht und es mal angehängt.
Hier in der angehängten Abbildung seht ihr auch mein kosmetisches Proble, welches mich so stört.
Hier der Code zu meinem Hauptproblem und Färbung:
[line] [/line]
Code:
Visual Basic-Quellcode
- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
- Application.EnableEvents = False
- If Intersect(Target, Range("A1:Z1000")) Is Nothing Then Application.EnableEvents = True: Exit Sub
- If ActiveCell.Interior.ColorIndex = 24 Then
- ActiveCell.Interior.ColorIndex = 3
- ActiveCell.Font.Strikethrough = True
- ActiveCell.Interior.ColorIndex = 3
- Else
- ActiveCell.Interior.ColorIndex = 24
- ActiveCell.Font.Strikethrough = False
- End If
- Application.EnableEvents = True
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Target.Count = 1 Then
- If Target.Column Mod 2 = 0 Then 'Feld selektiert zwischen den Columns B D F
- neue_column Target
- ElseIf Target.Row Mod 3 = 0 Then 'Feld selektiert zwischen den Reihen 3,6,9,12
- verschiebe_rows Target
- End If
- End If
- 'Besäubern
- zwischen_reihen_löschen
- Berechnung_wp
- End Sub
- Sub Berechnung_wp()
- Dim i As Integer
- i = 1
- Do While Tabelle1.Cells(2, i) <> "" 'Ist die Column überhaupt befüllt?
- Dim n As Integer
- n = 2 'Inhaltfeld auswählen, nicht das WP Feld
- Do While Tabelle1.Cells(n, i) <> "" 'Hat die Zelle einen Inhalt
- Dim wp As Integer
- 'Berechnung des WP Werts
- wp = 900 + Math.Round(i / 2.1, 0) * 1000 + Math.Round((n / 3), 0) * 100
- 'Befüllen der Zeile unter dem WP
- Tabelle1.Cells(n - 1, i).Value = "WP" & wp
- n = n + 3 ' Row 1 4 7 10 ...
- Loop
- i = i + 2 'Column A C E G
- Loop
- End Sub
- Sub neue_reihe(ByVal Target As Range)
- For i = 0 To 2
- ActiveCell.EntireRow.Insert
- Next
- Tabelle1.Cells(Target.Row - 1, Target.Column).Select
- End Sub
- Sub neue_column(ByVal Target As Range)
- For i = 0 To 1
- Target.EntireColumn.Insert
- Next
- Tabelle1.Cells(2, Target.Column - 1).Value = "Neu"
- Tabelle1.Cells(2, Target.Column - 1).Select
- End Sub
- Sub verschiebe_rows(ByVal Target As Range)
- Dim verschieber(4) As String
- For i = Target.Row + 1 To 100
- verschieber(4) = verschieber(3)
- verschieber(3) = verschieber(2)
- verschieber(2) = verschieber(1)
- verschieber(1) = Tabelle1.Cells(i, Target.Column)
- Tabelle1.Cells(i, Target.Column).Value = verschieber(4)
- Next
- Tabelle1.Cells(Target.Row + 2, Target.Column).Value = "Neu"
- Tabelle1.Cells(Target.Row + 2, Target.Column).Select
- End Sub
- Sub zwischen_reihen_löschen()
- 'Unbenutze Columns
- For i = 1 To last_column
- If Tabelle1.Cells(2, i).Value = "" And Tabelle1.Cells(2, i + 1).Value = "" Then
- Dim extra_range1 As Integer
- If Tabelle1.Cells(2, i + 2).Value = "" Then
- extra_range1 = 3
- Else
- extra_range1 = 2
- End If
- Range(Tabelle1.Cells(1, i), Tabelle1.Cells(1, i + extra_range1)).EntireColumn.Delete
- End If
- Next
- End Sub
- Function last_column()
- Dim Last As Long
- Last = Cells.Find("*", SearchOrder:=xlByColumns, _
- LookIn:=xlValues, SearchDirection:=xlPrevious).Column
- last_column = Last
- End Function
[line] [/line]
Ich hoffe, Ihr könnt mir evtl, weiterhelfen.
Viele Grüße
France
Edit by Dodo:
-> Topic verschoben (Grundlagen => VBA)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()