Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
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

VBA Bereich nach unten verschieben

VBA Bereich nach unten verschieben
29.07.2022 17:48:11
jaehnel
Hallo Excelfreunde
Beispieldatei
https://www.herber.de/bbs/user/154427.xlsx
Ich möchte die Zelle markieren und dann einen Button Drücken, damit dort "Urlaub" eingetragen wird.
Jetzt soll sich der Block incl dem 06.01.22 nach unten verschieben, damit die Aufenthaltszeit in den Abteilungen (A-B-C)
gleich bleibt.
Das würde ich mit meinen Kenntnissen noch hinbekommen.
Mein Problem ist, das sich die schon Vorhandenen Urlaubstage und Projekttage nicht verschieben dürfen (gelb markiert)
Diese müssten beim nach unten verschieben also übersprungen werden.
Ich hoffe, jemand mag mir helfen. Das wäre das letzt Puzzleteil für meine Datein
Danke
Christian

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bereich nach unten verschieben
31.07.2022 12:20:15
christian
Ich habe die Datei noch mal angepasst incl Makro und noch mal versucht, es genauer zu erklären. Der Text in meinem Anfangspost ist schon sehr verwirrend.
In der Datei ist das Ziel und die aktuelle Situation ziemlich genau beschrieben. Hoffe es kann mir jemand helfen.
https://www.herber.de/bbs/user/154450.xlsm
Vielen dank und einen schönen Sonntag euch allen
AW: VBA Bereich nach unten verschieben
01.08.2022 10:32:05
Yal
Moin Christian,
eine pfiffige und gar nicht so einfache Frage! (sonst hättest Du nicht so lang warten müssen)
Ich habe es so behandelt: wenn sich irgendwas in einer Spalte ändert, wird die gesmate Spalte neugesetzt.
Die Einträge die nicht A, B oder C sind, bleiben bestehen, alle andere sind geteilt in "wirkt, wie im Abteilung" und "verlängert Aufenthalt im Abt.". Im erste Zeile, also 1.1. ist immer der Startabteilung (nie "Urlaub", nie "projekt", ...) und der erste von n Tage in dieser Abteilung.
Folgende Code musst Du in den Codepane vom Blatt, wo diese Liste sind (auf dem Reiter unter rechtsklicken, "Code anzeigen")

Private AktAbteilung As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim EB As Range
Set EB = Range(Me.Range("D2"), Me.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1))
If Not Intersect(Target, EB) Is Nothing Then
Application.EnableEvents = False
AktAbteilung = Target.EntireColumn.Cells(2) 'Wert in zweite Zeile der betrachtete Spalte
Refresh_Liste Intersect(EB, Target.EntireColumn)
Application.EnableEvents = True
End If
End Sub
Sub Refresh_Liste(Bereich As Range)
Dim Z As Range
Dim AnsatzTage As Long
Const cAbt = "A;B;C"
Const MaxTage = 10
'erste Abteilung lesen
AktAbteilung = Bereich.Cells(1)
'Liste erzeugen
For Each Z In Bereich
Select Case LCase(Z.Value)
'Ereignisse, die wie ein Tag in Abteilung zählen
Case "projekt", "schule", "was auch immer"
AnsatzTage = AnsatzTage + 1
'Ereignis, die "berlängern" (zählt wie nicht in der Abteilung)
Case "urlaub", "krank"
'passiert aber nichts
'sonst prüfe und setze die Abteilung
Case Else
If AnsatzTage >= MaxTage Then
AnsatzTage = Application.Max(0, AnsatzTage - MaxTage - 1)
AktAbteilung = GetNext(cAbt, AktAbteilung)
End If
Z.Value = AktAbteilung
AnsatzTage = AnsatzTage + 1
End Select
Next
End Sub
Private Function GetNext(Liste As String, AktValue As String) As String
Dim Arr
Dim i
Arr = Split(Liste, ";")
For i = 0 To UBound(Arr)
If AktValue = Arr(i) Then Exit For
Next
GetNext = Arr((i + 1) Mod (UBound(Arr) + 1))
End Function
Was Du noch anpassen müsste:
_ deine letzte Spalte fängt im Beispiel in Zelle D2:
Set EB = Range(Me.Range("D2"), Me.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1))
dementsprechend von D2 auf F2 oder was auch immer.
_ die Abteilungsliste in Refresh_Liste ist festdefiniert: Const cAbt = "A;B;C"
Andere Namen, aber semikolon getrennt eintragen. Anzahl ist egal.
_ Const MaxTage = 10 ... muss ich nicht erklären.
_ Case "projekt", "schule", "was auch immer": die jeweilige Ereignisse in den Fälle (engl. "Case"), immer kleingeschrieben
viel Erfolg damit
VG
Yal
Anzeige
AW: VBA Bereich nach unten verschieben
01.08.2022 15:45:29
christian
Hallo Yal,
erstmal vielen Dank, dass du dir die Zeit genommen hast um mir zu helfen.
Leider sind die Tage des Aufenthalts in Abteilung und die Reihenfolge der Abteilungen immer unterschiedlich :(
Jetzt soll sich der Block incl dem 06.01.22 nach unten verschieben, damit die Aufenthaltszeit in den Abteilungen (A-B-C)
gleich bleibt.

Hiermit meinte ich, dass die Abteilungen und Dauer, die schon eingeben wurden, sich nicht mehr ändern sollen
Ich hoffe, ich habe dir nicht zu viel Zeit geklaut
Gruß
Christian
AW: VBA Bereich nach unten verschieben
01.08.2022 16:45:36
Yal
Hallo Christian,
ich habe einfach zu viel nachgedacht.
Die Lösung deines Problem liegt in der Rückwärtsbehandlung: wie bei Bodenwischen, von hinten/unten anfangen.
So ist die Aufgabe gar nicht mal so kompliziert:

Sub Makro2()
Dim i
Dim Z As Range
Const cDatenBereich = "B2:B60"
If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
ActiveCell.Value = "Urlaub" 'ohne Wenn und Aber
For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp) To ActiveCell.Row + 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End If
End Sub
VG
Yal
Anzeige
AW: VBA Bereich nach unten verschieben
01.08.2022 17:06:32
christian
Hi Yal,
hier bekomme ich leider eine Fehlermeldung
Fehler beim Kompilieren:
End if ohne If-Block
Gruß
Christian
AW: VBA Bereich nach unten verschieben
01.08.2022 17:12:40
GerdL
Moin,
ungetestet geändert.

Sub Makro2()
Dim i As Long
Dim Z As Range
Const cDatenBereich = "B2:B60"
If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
ActiveCell.Value = "Urlaub" 'ohne Wenn und Aber
For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp) To ActiveCell.Row + 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
End If
End Sub
Gruß Gerd
Anzeige
AW: VBA Bereich nach unten verschieben
01.08.2022 17:13:32
Heli
Da fehlt glaube ich nur ein Next i:

Sub Makro2()
Dim i
Dim Z As Range
Const cDatenBereich = "B2:B60"
If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
ActiveCell.Value = "Urlaub" 'ohne Wenn und Aber
For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp) To ActiveCell.Row + 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next i
End If
End Sub

AW: VBA Bereich nach unten verschieben
01.08.2022 17:24:12
christian
Leider hilft weder next noch next i
Trotzdem vielen Dank für eure Zeit
Gruß
Christian
Anzeige
AW: VBA Bereich nach unten verschieben
01.08.2022 17:42:29
christian
Wenn ich die IF Abfrage weg lasse, hängt er sich in der For i Zeile auf.
Fehlermeldung:
Laufzeitfehler ´13´:
Typen unverträglich

Sub Makro2()
Dim i As Long
Dim Z As Range
Const cDatenBereich = "B2:B60"
'If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
ActiveCell.Value = "Urlaub" 'ohne Wenn und Aber
 For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp) To ActiveCell.Row + 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
'End If
End Sub
Gruß
Christian
Anzeige
AW: VBA Bereich nach unten verschieben
01.08.2022 17:47:17
GerdL
Schreibe mal noch
....End(xlUp).Row To .. dazu
Es funktioniert :D
01.08.2022 18:27:07
christian
Es funktioniert, ihr glaubt gar nicht wie glücklich ich bin.
vielen, vielen, vielen Dank euch allen

Sub Makro2()
Dim i As Long
Dim Z As Range
Const cDatenBereich = "B2:B60"
If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
If ActiveCell.Value = "Urlaub" Or ActiveCell.Value = "Projekt" Then Exit Sub 'Ich habe den noch eingebaut, sonst würde auch alles nach unten rutschen wenn schon Urlaub oder Projekt vorher in der Zelle stand
ActiveCell.Value = "Urlaub"
For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp).Row To ActiveCell.Row + 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
End Sub

Anzeige
scho' wiada Gruscht neig'macht!
01.08.2022 19:45:08
Yal
O man! Eine Kompilierungstest hätte ich schon laufen lassen sollen :-(
Vielen Dank an allen für den 4-Augen-, gar 6-Augen-Prinzip-prüfung ;-)
VG
Yal
AW: scho' wiada Gruscht neig'macht!
01.08.2022 19:55:11
christian
bin trotzdem glücklich das es funktioniert :D
allerdings stehe ich gerade vor dem nächsten Problem (hatte eigentlich gedacht, das ich jetzt fertig bin...)
Es könnte ja auch vorkommen, dass Urlaub oder ein Projekt storniert wird.
Ich trau mich gar nicht zu fragen, aber wäre sowas auch möglich?
Wenn ich das Makro in einer Zelle starte, in der Urlaub oder Projekt steht, dieser Inhalt gelöscht wird und alles wieder hochgezogen wird?
Alle Urlaube und Projekte darunter müssten dann natürlich wieder stehen bleiben.
Will aber auch keine Umstände machen, ihr habt mir schon genug geholfen :D
Danke
Anzeige
Leider noch etwas gefunden
01.08.2022 21:28:30
christian
Hallo zusammen,
in der Urpsrungsbeispieldatei hatte ich mehrere "Azubis" in Spalten nebeneinander... das ist im laufe des Threads leider untergegangen.
Const cDatenBereich = "B2:B60" bekomme ich leider nicht so umgebaut, dass es in allen Spalten funktioniert.
Notfalls könnte ich aber auch für jede Spalte einen eigenen Button erstellen, wäre zwar nicht schön, aber zumindest wäre die Funktion da.
Wäre das aufwändig, dies auf Spalte B bis F auszuweiten?
Wenn ja ists auch nicht so schlimm
Gruß
Christian
Back to start
02.08.2022 10:00:05
Yal
Hallo Christian,
anlässlich den letzten 2 Anforderungen wären wir genau an dem Punkt, wo mein anfanglichen Code passen würde. Da hat man so seine Erfahrung mit unausgesprochenen Anforderungen...
Das einzige entdeckte Mangel war, dass die Einsätze nicht zwangsläufig 10 Tage sind. Wenn es eine Weg gäbe, diese Eingangsgrösse zu formalisieren, könnte man diese auch eincodieren.
Es muss nicht einen archimedeschen Punkt sein, aber stabile Progammierung basiert eben auf stabile Vorgaben.
VG
Yal
Anzeige
AW: Back to start
02.08.2022 16:18:55
christian
Hallo Yal,
bezüglich der Frage wegen dem "stornieren" hätte ich auch einen neuen Thread aufmachen können/müssen. Das war Anfangs auch nicht gewünscht und sollte somit ein neues Thema.
Bezüglich dem Thema, das es um mehrere Spalten geht, kann man nur in der ersten Beispieldatei sehen. Ich sehe ein, dass es letztendlich untergegangen ist, weil ich eine zweite Datei gepostet habe, in der dann nur noch eine Spalte zwecks Übersichtlichkeit enthalten war.
Ich werde für jede Spalte einen eigenen Button nehmen und den Code dann für jede Spalte anpassen. Sollte auch gehen
Vielen Dank für deine Zeit
Christian
Anzeige
AW: Back to start
02.08.2022 16:35:08
christian
Ich hab das Problem mit mehreren Spalten tatsächlich alleine gelöst bekommen :)
Jeder richtige Programmierer wird zwar jetzt die Hände über den Kopf zusammenschlagen aber es läuft.

Sub Urlaub()
Dim iWks As Integer
Dim sp As Integer
sp = ActiveCell.Column
If sp = 2 Then
SpalteB
Else
If sp = 4 Then
SpalteD
End If
End If
End Sub
Spalte B und D ... sind dann eigene Makros (das von Dir)
Gruß
Christian
AW: Back to start
02.08.2022 17:36:36
GerdL
Hallo Christian,
bei vielen Makros fehlt schnell der Überblick.

Sub Makro_Urlaub_B_D()
Dim i As Long, Z As Range
With ActiveCell
If .Column = 2 Or .Column = 4 Then 'Spalteneingrenzung
If .Row > 1 And .Row  "urlaub" And LCase(.Value)  "projekt" Then 'Ausschluß, falls bereits in
'aktiver Zelle vorhanden
.Value = "Urlaub"
For i = Cells(Rows.Count, .Column).End(xlUp).Row To .Row + 1 Step -1
Set Z = Cells(i, .Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
End If
End If
End If
End With
End Sub
Gruß Gerd
AW: Back to start
02.08.2022 18:35:30
christian
Vielen Dank Gerd, ja das macht es dann doch übersichtlicher :D
Leider habe ich gerade noch einen Fehler entdeckt.
Wenn der Urlaub innerhalb eines "Abteilungsblocks" ist, funktioniert alles so wie es soll.
Ist der Urlaub am letzten Tag, wird der nächste Block um einen Tag verlängert.
Bsp
Urlaub am 5ten Tag
A-A-A-B-B-B-C-C-C = A-A-A-B-U-B-B-C-C-C
Urlaub am 6ten Tag
A-A-A-B-B-B-C-C-C = A-A-A-B-B-U-C-C-C-C
AW: Back to start
02.08.2022 20:14:51
GerdL
Ja, die Zeilenmathematik. Gott sei dank, gibt es immer nur einen Tag Urlaub. Probier mal.

Sub Makro_Urlaub_B_D()
Dim i As Long, Z As Range, X As Variant
With ActiveCell
If .Column = 2 Or .Column = 4 Then 'Spalteneingrenzung
If .Row > 1 And .Row  "Urlaub" And LCase(.Value)  "Projet" Then 'Ausschluß, falls bereits in
'aktiver Zelle vorhanden
X = .Value 'alten Wert der aktiven Zelle merken
.Value = "Urlaub"
For i = Cells(Rows.Count, .Column).End(xlUp).Row To .Row + 1 Step -1
Set Z = Cells(i, .Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(2, 0) = Z.Value
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
.Offset(1, 0) = X 'alten Wert der aktiven Zelle
'in Zelle darunter einfügen
End If
End If
End If
End With
End Sub
Gruß Gerd
AW: Back to start
02.08.2022 20:23:05
christian
Hi , ging erst nicht. aber ich hab ja in dem Threat auch schon einiges gelernt.
bei If LCase(.Value) "Urlaub" And LCase(.Value) "Projekt" Then hab ich Urlaub und Projekt klein geschrieben.
Habe auch heute den ganzen Tag versucht, das Thema mit dem Storno hinzubekommen und habs tatsächlich auch geschafft...

Sub storno()
Dim i As Long
Dim Z As Range
Const cDatenBereich = "B2:b60"
If Intersect(ActiveCell, Range(cDatenBereich)) Is Nothing Then Exit Sub
If Not ActiveCell.Value = "Urlaub" Or ActiveCell.Value = "Projekt" Then Exit Sub
ActiveCell.Value = ActiveCell.Offset(1, 0).Value
For i = ActiveCell.Row + 1 To Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp).Row - 1 Step 1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(-1, 0).Value)
Case "projekt", "urlaub"
Z.Offset(-2, 0) = Z.Value
Case Else
Z.Offset(-1, 0) = Z.Value
End Select
Next
End Sub
mal gucken ob ich das morgen noch so umgebaut bekomme, dass es auch für alle Spalten geht.
Vielen vielen Dank für eure Hilfe, ich kanns nicht oft genug schreiben
Gruß
Christian
AW: Back to start
02.08.2022 21:30:20
christian
Gott sei dank, gibt es immer nur einen Tag Urlaub...der Satz hat mir gerade echt das Genick gebrochen.
Ich geb auf, glaub das ist ein Paar Nummern zu hoch für mich. Muss man sich dann einfach eingestehen.
Tut mir leid für die gestohlene Zeit.
Selection change und dann Change
03.08.2022 00:07:59
Yal
Hallo zusammen,
Wenn man mit dem Ereignis "SelectionChange" den Zustand zwischenspeichert und bei "Change" den alten Stand und die neue Information kombiniert, kann man das Ziel erreichen.
Das Problem ist, dass es keine stabile Definition der Länge der Aufenthalt in den Abteilungen, und daher keinen festen Punkt, worauf man bauen kann.
VG
Yal
AW: Selection change und dann Change
03.08.2022 17:19:51
christian
Ich hab es jetzt mit zwei Hilfsspalten gelöst, denke damit kann ich gut leben
https://www.herber.de/bbs/user/154500.xlsm
Vielen Dank an alle, vor allem für eure Geduld :D
Gruß
Christian
Wenn Du damit zufrieden bist, ...
03.08.2022 20:30:50
Yal
... sind wir auch froh.
Aber drücke bloß nicht mehrmals den Knopf "Urlaub" nacheinander... das geht schief.
So eine harte Nuss hatten wir lange nicht mehr. Gefällt mir.
Aber wie auch ich das Problem umdrehe, kommt man nicht drum: man muss wissen, wieviel Tage pro Abteilung ein Azubi sein muss. Notfalls müsste man diese Information aus den vorhandenen Daten auslesen. Aber nicht einfach, wenn dazwischen "Urlaub" oder "Projekt" liegen.
Es wurde als Muster reichen, auch mit Wiederholung : "A:8;B:10;C:8;A:10;E:9;F:12". Das wäre eine stabile Lage (oder Vorlage).
Darauf kann man -leicht- bauen:
_ man startet in Zeile 2 der ausgewählte Spalte,
_ es wird "A" angelegt und Zähler geht +1
_ es sei denn, es gibt einen Projekt-Tag: Zähler geht trotzdem +1
_ es sei denn, es gibt einen Urlaubstag: Zähler bleibt unverändert
_ hat der der Zähler 8 erreicht, wechselt man auf die nächste Kombi: B 10 mal.
_ bis alle Kombi durch sind.
Im Grund genommen, mein erster Entwurf, nur dass man die Belegung nicht fest auf 10 Tage und die Abteilung nicht nur A,B,C sind.
Hier einen Entwurf mit der Sequenz cAbt = "A:10;B:10;C:10;XY:10"
https://www.herber.de/bbs/user/154502.xlsm
Viel Spass
VG
Yal
AW: Wenn Du damit zufrieden bist, ...
03.08.2022 20:49:57
christian
Hi,
ja das mit dem doppelt drücken hab ich auch bemerkt und behoben.
Ich bin die Sache auch noch mal ganz anders angegangen.
Ich kann jetzt in Spalte D klicken, Spalte B und C werden dann aus optischen Gründen ausgeblendet.
Ist ein Blattschutz ohne Passwort drin, damit der User die Formeln in Spalte D später nicht löschen kann
https://www.herber.de/bbs/user/154503.xlsm

Sub Urlaub()
Dim i As Long
Dim Z As Range
Const cDatenBereich = "b2:b60"
If Intersect(ActiveCell, Range("D2:D60")) Is Nothing Then Exit Sub
If ActiveCell.Value = "Urlaub" Or ActiveCell.Value = "Projekt" Then Exit Sub
ActiveSheet.Unprotect
For i = Cells(Rows.Count, Range(cDatenBereich).Column).End(xlUp).Row To ActiveCell.Row - 1 Step -1
Set Z = Cells(i, Range(cDatenBereich).Column)
Select Case LCase(Z.Offset(1, 0).Value)
Case Else
Z.Offset(1, 0) = Z.Value
End Select
Next
ActiveCell.Offset(0, -1).Value = "Urlaub"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Deinen Entwurf schau ich mir natürlich auch jetzt an, bin da neugierig. Allerdings ist nicht nur die Dauer, sondern auch die Reihenfolge der Kostenstellen nicht konstant, hatte ich irgendwo in diesem Riesenthread mal geschrieben :D
Hab auf jedenfall einiges gelernt, und auch den Code verstanden, den du mir anfangs gegeben hast
Danke dafür
AW: Wenn Du damit zufrieden bist, ...
04.08.2022 09:28:50
Yal
... wenn jeder Azubi seine eigene Sequenz haben soll, kann man diese pro Spalte hinterlegen.
AW: VBA Bereich nach unten verschieben
01.08.2022 16:33:51
christian
Wäre vom Ansatz so etwas evtl. Möglich?
Mit der Formel lese ich alle Eingaben ohne "Urlaub" - "Projekt" - "leer" aus:
=FILTER(B2:B60;(B2:B60"Urlaub")*(B2:B60"Projekt")*(B2:B60"");"")
B2 müsste in diesem Fall durch die aktive Zelle Ersetzt werden.
In die aktive Zelle wird dann "Urlaub" eingetragen.
danach schreibt es die Liste runter und überspringt alle "Urlaub" und "Projekt"
Mit der Filter-Formel wird es natürlich nicht funktionieren, Außer ich stoppe die Berechnung während des Makros, aber evtl. würde es von der Logik funktionieren.
Gruß und vielen Dank für die Zeit
Christian
AW: VBA Bereich nach unten verschieben
01.08.2022 16:34:35
christian
Häkchen für offen vergessen :D

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige