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

Konflikt im VBA Code

Konflikt im VBA Code
08.01.2019 10:25:35
Andre
Hallo nochmal,
ich schreibe wegen einer Frage von mir aus letztem Jahr, leider bin ich nicht mehr dazu gekommen vorher zu antworten :(
Und Eure antworten haben an sich auch funktioniert aber halt immernoch nur wenn ich den geposteten Code auskommentiere.
Hier der Beitrag:
Hallo liebe Excel Experten,
ich arbeite jetzt schon eine Weile an einer Tabelle und stoße nun mal wieder an meine Grenzen.. :/
Ich will ermöglichen dass man mit einem Button Zeilen hinzufügen kann und die Formeln übernommen werden.
Es wird eine neue Zeile eingefügt aber die Formel wird nicht übernommen.
Nur wenn ich einen anderen Code auskommentiere, funktioniert es.
Welcher im Modul 4 enthalten ist und dazu beiträgt, dass eine Zelle die gesperrt ist farblich markiert wird mithilfe bedingter Formatierung über das Tabellenblatt.
Und ich weiß weder warum das so ist noch wie ich das beheben kann.
Code zum Zellen einfügen:
Sub ZelleEinfügen()
Dim lngReihe As Long
lngReihe = ActiveCell.Row
If lngReihe > 1 Then
Rows(lngReihe + 1).Insert
'Rows(lngReihe).AutoFill Rows(lngReihe).Resize(2), xlFillFormats
Range("I" & lngReihe).AutoFill Range("I" & lngReihe).Resize(2), xlFillDefault
Range("J" & lngReihe).AutoFill Range("J" & lngReihe).Resize(2), xlFillDefault
Range("O" & lngReihe).AutoFill Range("O" & lngReihe).Resize(2), xlFillDefault
End If
End Sub
Code der auskommentiert werden muss ( Modul 4):
Function IstGesperrt(Optional Zelle As Range) As Boolean
If Zelle Is Nothing Then Set Zelle = Application.Caller
IstGesperrt = Zelle.Locked
End Function
Diese Funktion wird dann in Bedingter Formatierung aufgerufen.
Das hat an sich auch bestens geklappt...
Anbei auch noch mal die Excel Datei. Dabei geht es eigentlich nur um das Blatt Angebot u Rechnung.
https://www.herber.de/bbs/user/126074.xlsm
Ich bin über jede Hilfe überaus Dankbar!
Mit freundlichen Grüßen
Andre
Antwort:
Warum denn immer so lange Variablen-Namen?
Sub ZelleEinfügen()
Dim z As Long
z = ActiveCell.Row
If lngReihe > 1 Then
Rows(z + 1).Insert
Rows(z).Copy
Cells(z + 1,1).Select
ActiveSheet.Paste
Rows(z).Copy Cells(z + 1,1)
End If
End Sub
Beitrag: https://www.herber.de/forum/archiv/1660to1664/t1662747.htm
Datei: https://www.herber.de/bbs/user/126074.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konflikt im VBA Code
09.01.2019 19:28:40
Piet
Hallo Andre
ich habe mir die Beispieldatei geladen, sehe das es Antworten von onur und Hajo gibt, aber wo bitte soll die neue Zeile in Tabelle "Angebot und Rechnung" konkret eingefügt werden? Das sehe ich nicht.
Es gibt eine Lösung von Hajo die funktionieren sollte. Wurde die getestet? Wo ist der Button und das Makro zum einfügen?
In der Tabelle gibt es ein Taret Makro, das jede Zelle die der Cursor ansteuert in "Aktive Zelle" umbenennt! Wozu soll das gut sein? Wenn ich in einem Blatt 1000 Zellen habe die sich alle "Aktive Zelle" nennen, welche ist dann die "Aktive Zelle"? Das ist unlogisch.
Zum einfügen sollte man bitte auch prüfen das man nicht an falscher Stelle neue Zeilen einfügt.
Ich warte mal die Antwort ab. Da sollte man wirklich die genauen Details wissen!
mfg Piet
Anzeige
AW: Konflikt im VBA Code
10.01.2019 09:21:38
Andre
Hallo Piet,
entschuldige/entschuldigt bitte mir waren die fehlenden Details nicht bewusst.
Die neue Zeile soll immer unter der momentanen Zelle eingefügt werden und das Wichtige ist eben, dass die Formeln sofern vorhanden übernommen werden sollen.
Der Commandbutton befindet sich oben rechts auf Angebot u Rechnung (Schaltfläche 1).
Dort befindet sich auch der Code (Modul 2).
Die beiden Lösungen von Hajo und onur funktionieren genauso gut wie meine, aber in allen Fällen wird dann beim Ausführen auch eine Zeile unter der aktiven eingefügt, die Formeln werden jedoch nur mit kopiert wenn ich eben den folgenden Code (Modul 4) auskommentiere sonst nicht.
Function IstGesperrt(Optional Zelle As Range) As Boolean
If Zelle Is Nothing Then Set Zelle = Application.Caller
IstGesperrt = Zelle.Locked
End Function
Zum Thema "Aktive Zelle":
Das ist 1 von 3 Bestandteilen einer Funktion, bei der die ausgewählte Zelle farbig markiert werden soll, wenn diese nicht gesperrt ist und danach wieder die alte Formatierung übernehmen soll.
1. Bedingte Formatierung mit folgender Regel (und Einfärbung):
=UND(SPALTE()=SPALTE(AktiveZelle);ZEILE()=ZEILE(AktiveZelle);NICHT(IstGesperrt()))
(ist in der Datei zb in Zelle E9, der Bereich ist im Beispiel nicht ganz korrekt)
2. Der obige Code der auskommentiert werden muss.
3. Der Code der die aktive Zelle benennt
Genau verstehe ich offen gestanden diese Kombination selbst nicht, da ich diese auch nur kopiert habe.
Vielen Dank, dass du dich damit auseinandersetzen möchtest :)
Grüße Andre
Anzeige
AW: Konflikt im VBA Code
11.01.2019 19:33:36
Piet
Hallo Andre
nach einigem Knobeeln und ausprobieren sehe ich zur Zeit die einzige Lösung im Code von Hajo in Kombination anschliessend alle Werte -ausser Formeln- in der neuen Zeile zu löschen! - Weil ich faul bin habe ich als Zeilen Variable z genommen.
Unklar ist mir das "x" Zeichen in Spalte K. Bei diesem Code bleibt es erhalten, wenn es gelöscht werden soll must du die erste IF Zeile entfernen! Würde mich freuen wenn es damit klappt.
mfg Piet
Sub ZeileEinfügen()
Dim z As Long
z = ActiveCell.Row
If z > 1 Then
Rows(z).Copy Cells(z + 1, 1)
'Alle Werte ausser Formeln löschen
For j = 1 To 15
'** den ersten IF Befehl löschen wenn "x" in Spalte K gelöscht werden soll!!
If Cells(z + 1, j).Value  "x" Then _
If Left(Cells(z + 1, j).Formula, 1) = "=" Then _
Else Cells(z + 1, j) = Empty
Next j
End If
End Sub

Anzeige
AW: Konflikt im VBA Code
15.01.2019 09:44:22
Andre
Hallo Piet,
vielen Dank für deine Mühen!
Allerdings habe ich immernoch Probleme :(
Ich bin mir nicht sicher wie ich die beiden Codes jetzt kombinieren soll :D
Dein Code allein bewirkt bei mir nicht sichtbares.
Und wenn ich die bedingte Formatierung für die Zellmarkierung über die Ganze Tabelle ziehe, entstehen dann Lücken im Bereich, da diese ja in der nächsten Zeile gelöscht werden.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige