Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suche Lösung in VBA
#11
Hallo,

hast Du mehrere Dateien geöffnet?
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • ToXiC
Antworten Top
#12
Nein, das hatte ich nicht. Das ist seltsam.

Ich habe jetzt nochmal geöffnet und jetzt wurde es wieder normal angezeigt. Doch wenn ich jetzt ein Dokument geschlossen habe, kommt die Passwortabfrage für VBA. Die kann ich einfach abbrechen.
Irgendwie habe ich das Gefühl, dass jetzt irgendwo eine Schleife ist, die da was durcheinander bringt.

PS: Ich musste jetzt gleich dreimal hintereinander die Passwortabfrage beenden und habe nur ein Dokument geschlossen.

Edit: Das ist insofern reproduzierbar, als dass es nur abgefragt wird, wenn ich zuvor das VBA-Fenster geöffnet hatte.

Edit 2: Passiert nicht, wenn ich das VBA-Kennwort einmalig eingegeben habe. Dann darf ich das einfach nicht vergessen.

Edit 3: Habe nun soweit getestet und langsam finde ich ich Spaß an der Sache, wer hätte das gedacht. Wenn ich den Button klicke, wird zwar die Formel für automatische Nummerierung übernommen, nicht aber die Formeln für die Summenberechungen.
Kann man das vielleicht noch in die Funktion einbinden? Habe es noch nicht ganz verstanden.
Antworten Top
#13
Hi,

(21.06.2016, 18:16)ToXiC schrieb: Kann man das vielleicht noch in die Funktion einbinden? Habe es noch nicht ganz verstanden.

nimm mal dieses Makro anstelle des alten:
Option Explicit

Sub Zeile_einfügen()
   ' 
   ' Zeile_einfügen Makro 
   ' 
   Dim loZeile As Long
   ' 
   
   loZeile = 1000
   loZeile = Application.WorksheetFunction.Match("Summe:", Range("B24:B" & loZeile), 0) ' gibt Zeile im Suchbereich aus 
   loZeile = 24 + loZeile - 1       'Addition der Such-Startzeile, => Zeile der letzten Datenzeile vor "Summe:" 
   '   MsgBox loZeile                   'Anzeige der Zahl zu Testzwecken 
   
   ActiveSheet.Unprotect Password:="PW"
   Application.EnableEvents = False
   
   Rows(loZeile & ":" & loZeile).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
   Range("B" & loZeile).FormulaR1C1 = "=ROW()-23"
   Range("C" & loZeile).Select
   Range("B" & loZeile - 1 & ":M" & loZeile - 1).Copy Range("B" & loZeile)
   Range("C" & loZeile & ":M" & loZeile).ClearContents
   Range("I" & loZeile + 1).Formula = "=Sum(I24:J" & loZeile & ")"
   Range("K" & loZeile + 1).Formula = "=Sum(K24:L" & loZeile & ")"
   Range("M" & loZeile + 1).Formula = "=Sum(M24:N" & loZeile & ")"

   Application.EnableEvents = True
   ActiveSheet.Protect Password:="PW", AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFormattingCells:=True
   
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#14
Ich weiß ja nicht, wie lange ihr das schon macht, aber ihr seid echt super.
Ob ich das noch alles in meinen Kopf bekomme?

Das scheint ja gut zu funktionieren, est in der Praxis werden dann wohl Fehler auffallen.
Ich müsste nur noch wissen, wie das mit dem Seitenende geht...

Ich würde jetzt gerne mal probieren, einen Button einzufügen, mit dem man die letzte Zeile wieder löschen kann, falls jemand versehentlich den Button geklickt hat.
Rückgängig geht ja leider nicht, wegen des Blattschutzes.

Wenn ich das richtig verstehe, müsste ja der Code ziemlich gleich sein, wie beim Einfügen.
Wie heißt der Code-Teil zum Löschen von Zeilen?

Danke für die Unterstützung.
Antworten Top
#15
Hallo,

Zitat:Wenn ich das richtig verstehe, müsste ja der Code ziemlich gleich sein, wie beim Einfügen.

Wie heißt der Code-Teil zum Löschen von Zeilen?

Da Du ja schon einfügen kannst ...
Zum Löschen der Zeile .EntireRow.Delete


Zitat:Ich würde jetzt gerne mal probieren, einen Button einzufügen, mit dem man die letzte Zeile wieder löschen kann, falls jemand versehentlich den Button geklickt hat.
Rückgängig geht ja leider nicht, wegen des Blattschutzes.

Rückgängig geht in VBA ohnehin nichts, es sei denn, man programmiert es. Und den Blattschutz ... den kann man per VBA programmtechnisch auch ein- und ausschalten
Das wäre also auch eher kein Problem.

Zitat:Ich weiß ja nicht, wie lange ihr das schon macht, aber ihr seid echt super.
Ob ich das noch alles in meinen Kopf bekomme?

Na ja, Übung macht den Meister und Üben tun wir hier alle noch.
Übrigens: Excel ist nicht nur sexy, Excel macht auch süchtig. Man fängt ganz klein an .... und dann kommen ganz schnell die Begehrlichkeiten.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • ToXiC
Antworten Top
#16
Hi,

(21.06.2016, 20:10)ToXiC schrieb: Das scheint ja gut zu funktionieren, est in der Praxis werden dann wohl Fehler auffallen.
Ich müsste nur noch wissen, wie das mit dem Seitenende geht...

ich habe in Deiner Datei noch ein paar Anpassungen vorgenommen. MMn benötigst Du nicht so viele Spalten, dann werden die Makros auch etwas einfacher:

.xlsb   Arbeitspaket - Rabe V2-3.xlsb (Größe: 20,54 KB / Downloads: 6)
Zum Austesten habe ich den Blatt-Schutz und den Makro-Schutz auskommentiert!
Das Löschen der Zeilen habe ich ebenfalls eingebaut, aber beachten: Beim einen Button wird im gesamten Blatt gelöscht, also auch in den Kopfzeilen!

Weitere nötige Arbeiten:
  1. Eingrenzen des Löschens auf die Zeilen 24 bis letzte vor "Summe:"  -  ist mit dem zweiten Löschbutton auf die letzte Arbeitsschritt-Zeile begrenzt
  2. Nun muß noch festgestellt werden, bei welcher Zeile ein Zeilenumbruch erfolgt, das ist sowohl abhängig von der Zeilenanzahl, als auch der Höhe der Zeilen.
    Dann kann auf die Folgeseite die Überschrift-/Kopfzeile einkopiert werden. Ich habe keinen Plan, wie das gehen könnte.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#17
Das ist ja wirklich genial.

Der Bereich für das Verschieben/ Kopieren auf die nächste Seite wäre dann das Unterschriften-Feld (Arbeitspaket abgeschlossen).

Dieses rutscht derzeit automatisch auf die nächste Seite, wenn der Bereich nicht mehr passt.
Aus diesem Grund habe ich die Zellen auch verbunden.

Rutscht dieser Bereich auf die nächste Seite soll die Überschriften-Zeile bei Arbeitsschritte/ Aktivitäten voran kopiert werden.
Sozusagen sollen die Arbeitsschritte fortlaufend weiter eingegeben werden können.

Vielleicht kann ja jemand noch diese Lösung finden, wäre super.

Danke an alle.

Edit: Mein Chef möchte nun, dass sich die Zeilenhöhe auch automatisch wieder anpasst, wenn man wieder Text oder Textteile aus der Zeile löscht und die Zeile somit wieder schmaler werden könnte. Wie kann ich das umsetzen?
Antworten Top
#18
Hi,

(22.06.2016, 07:08)ToXiC schrieb: Edit: Mein Chef möchte nun, dass sich die Zeilenhöhe auch automatisch wieder anpasst, wenn man wieder Text oder Textteile aus der Zeile löscht und die Zeile somit wieder schmaler werden könnte. Wie kann ich das umsetzen?

in meiner hochgeladenen V2-3 passiert das ohne weitere Code-Änderungen.

Wenn ich den Code für den gesamtbereich2 auf Blatt "Deckblatt" so ändere, dann macht Excel zwar auch AutoFit, das führt aber dazu, daß die Zeile nicht mehr hoch genug wird.
  Set gesamtbereich2 = Union(bereich3, bereich4, bereich5)
  gesamtbereich2.HorizontalAlignment = xlLeft
  gesamtbereich2.VerticalAlignment = xlCenter gesamtbereich2.EntireRow.AutoFit
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#19
Hallo Ralf,

(22.06.2016, 09:05)Rabe schrieb: Wenn ich den Code für den gesamtbereich2 auf Blatt "Deckblatt" so ändere (Kommentarzeichen raus), dann macht Excel zwar erneut AutoFit, das führt aber dazu, daß die Zeile nicht mehr hoch genug wird.
   Set gesamtbereich2 = Union(bereich3, bereich4, bereich5)
  gesamtbereich2.HorizontalAlignment = xlLeft
  gesamtbereich2.VerticalAlignment = xlCenter
'   gesamtbereich2.EntireRow.AutoFit

mach mal ein

Code:
gesamtbereich2.Rows.Autofit

daraus. Vielleicht hilft es.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • ToXiC
Antworten Top
#20
Hi, ich habe es selbst probiert, die Zeilenhöhe wird aber gar nicht mehr angepasst dann.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste