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
#21
Ich habe nun festgestellt, dass sich die Zeilenhöhe automatisch anpasst, wenn man die Löschen-Taste drückt, aber nicht wenn man den Inhalt mit der Entf-Taste leert. Also muss es doch irgendeinen Weg geben, dass dies auch mit dieser Taste funktioniert...
Antworten Top
#22
Hi,

(22.06.2016, 15:09)ToXiC schrieb: wenn man die Löschen-Taste drückt, aber nicht wenn man den Inhalt mit der Entf-Taste leert.

ich habe nur eine Taste zum Löschen/Entfernen und da steht "Entf" drauf und damit funktioniert es bei mir.

Wenn Du den gesamten Inhalt entfernst, kannst Du ein Zeichen reinschreiben, ENTER, dann das Zeichen wieder löschen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#23
Ja, das weiß ich. ich soll es aber so realisieren, dass die nicht erst was eingeben müssen, um es dann zu löschen.
ich habe zwei Tasten, wie die meisten: Die Entf-Taste und die zurück-Taste. Wie auch immer die heißt, das ist ein Pfeil <----- und löscht im text von rechts nach links einzelne Buchstaben z.B.
Mit dieser funktioniert es, aber nur mit dieser.
Antworten Top
#24
Hallo,

teste es mal damit:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim bereich1 As Range
 Dim bereich2 As Range
 Dim gesamtbereich1 As Range
 Dim bereich3 As Range
 Dim bereich4 As Range
 Dim bereich5 As Range
 Dim gesamtbereich2 As Range
 Dim loZeile As Long
 
 If Target.Rows.Count = 1 Then
   ' Blattschutz aufheben
   Me.Unprotect Password:="PW"
 
   With Target.Cells(1).MergeArea
     ' Zellverbund aufheben
     .UnMerge
     ' Ausrichtung über alle Zellen
     .HorizontalAlignment = xlCenterAcrossSelection
     '  automatische Zeilenhöhe
     .EntireRow.AutoFit
     ' Zellen verbinden
     .Merge
   End With
   
   
   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
   
   Set bereich1 = Range("B23:B" & loZeile)
   Set bereich2 = Range("C23:I23")
   Set gesamtbereich1 = Union(bereich1, bereich2)
   gesamtbereich1.HorizontalAlignment = xlCenter
   gesamtbereich1.VerticalAlignment = xlCenter
   
   Set bereich3 = Range("B" & loZeile + 2 & ":I" & loZeile + 2)
   Set bereich4 = Range("B3:I19")
   Set bereich5 = Range("C24:I" & loZeile)
   Set gesamtbereich2 = Union(bereich3, bereich4, bereich5)
   gesamtbereich2.HorizontalAlignment = xlLeft
   gesamtbereich2.VerticalAlignment = xlCenter
   
   With Me
     ' Blattschutz setzen, Rechte vergeben
     ' https://msdn.microsoft.com/de-de/library/office/ff840611.aspx
     .EnableSelection = xlUnlockedCells
     '.Protect Password:="PW", AllowInsertingRows:=True, AllowDeletingRows:=True, AllowFormattingCells:=True
   End With
 End If
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • ToXiC
Antworten Top
#25
Oh man, es funktioniert. Ihr seid so toll. Ich bin eigentlich total überfordert, was macht das "Me" anders, als vorher?

Jetzt muss ich nur noch das hinbekommen, vielleicht findet ja noch jemand eine Lösung:

Deckblatt

BCDEFGHI
23Lfd-Nr.Arbeitsschritte/ AktivitätenVerantwortlichMitwirkendeAufwand in
Projekttagen
Ext. KostenInvest
241
252
263
274
285
296
307
318
329
3310
34Summe:0,00 €0 €
35
36Arbeitspaket abgeschlossen:


_____________________________________                                             ________________________________________
Datum / Unterschrift AP-Verantwortliche/r                                                    Datum / Unterschrift Projektleiter/in

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Sobald der eingegebene Inhalt nicht mehr auf die Seite passt, soll die Überschriftenleiste mit Lfd. Nr, Arbeitsschritte, etc. in die erste Zeile der 2. Seite kopiert werden.
Der Eingabebereich bei den fortlaufenden Nummern soll aber weiterhin alle aktuellen Funktionen beibehalten und fortgeschrieben werden können.
Die Zeile für die Unterschriften soll nur auf der letzten Seite stehen, möglichst immer in der letzten zeile. Also wie ein Textfeld sich immer wieder auf die letzte Zeile positionieren. So sollte es eigentlich auch schon auf der ersten Seite sein.

Ich lade mal den aktuellen Stand, der nur dank Euch überhaupt entstehen konnte, nochmal hoch.

Vielleicht findet sich doch noch ein Bastler, der das auch noch lösen kann.


.xlsm   16-06-15-RDSb-V01-Arbeitspaket_roh_ohne_Bild.xlsm (Größe: 30,11 KB / Downloads: 6)
Antworten Top
#26
(22.06.2016, 19:00)ToXiC schrieb: , was macht das "Me" anders, als vorher?

Guckst Du: Objekte (3) - Me
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • ToXiC
Antworten Top
#27
Das klingt ja fast so, als ob es in dem Code einen fehler gibt, der damit umgangen wird?
Antworten Top
#28
Hi,

(22.06.2016, 19:00)ToXiC schrieb: Ich lade mal den aktuellen Stand, der nur dank Euch überhaupt entstehen konnte, nochmal hoch.

der Stand sieht klasse aus!

in paar Anmerkungen:
  • bei der Zeile ' MsgBox loZeile ... muß vor das ( noch ein ', sonst gibt es bei Reaktivierung der Zeile einen Fehler.
  • ich glaube, das automatische Höhenanpassen funktioniert jetzt, nicht weil das "Me" verwendet wurde, sondern wegen diesen zwei geänderten Codezeilen:
      If Target.Rows.Count = 1 Then
     ...
     With Target.Cells(1).MergeArea
  • ich hatte ja das Setzen des Passwortschutzes abgeschaltet => also am Ende des jeweiligen Moduls dann vor Veröffentlichung das ' vor der Zeile entfernen.
  • auch der Code-VBA-Passwortschutz ist abgeschaltet
  • in das Makro für "aktuelle Zeile löschen" sollte noch eine Sicherheitsabfrage eingebaut werden, da dann ja die komplette Zeile gelöscht wird!
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top
#29
Hi Rabe,

ja, ich weiß, dass der Passwortschutz noch deaktiviert ist. Habe es erst einmal so belassen. Zumindest habe ich das Verstanden, wie man Hinweistexte mit ' festlegt.

Wie kann ich denn eine Sicherheitsabfrage realisieren?
Antworten Top
#30
Hi,

(23.06.2016, 08:16)ToXiC schrieb: ja, ich weiß, dass der Passwortschutz noch deaktiviert ist. Habe es erst einmal so belassen. Zumindest habe ich das Verstanden, wie man Hinweistexte mit ' festlegt.

Wie kann ich denn eine Sicherheitsabfrage realisieren?

ok, gut.

Sicherheitsabfrage:
beim Drücken des Buttons wird eine Userform geöffnet, die darauf hinweist, dann mit "OK"-Button das Löschen-Makro aufrufen und mit "Abbruch" den Vorgang abbrechen ohne löschen.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • ToXiC
Antworten Top


Gehe zu:


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