Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
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
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Problem Textfelder

VBA Problem Textfelder
27.08.2006 19:32:41
Peter
Hallo,
auf einem Diagrammblatt habe ich zwei Textfelder positioniert.
Der Inhalt der Textfelder soll zum Teil fest und zum Teil automatisch aus Zellinhalten und anderen Quellen eingetragen werden.
1.
"Text Box 31" hat folgenden festen Text:
Haupt-Daten der Pflanzung (das soll in Arial, größe 10, Fett stehen)
Name: (diese Zeilen sollen in Arial, größe 8, Fett stehen)
Baumart:
Pflanzzeit:
Fläche in Dekar:
a)
hinter "Name:" soll aus Tabellenblatt "Datenübernahme" Zelle "X4" der Inhalt übernommen werden.
b)
hinter "Baumart:" soll aus Tabellenblatt "Datenübernahme" Zelle "B4" der Inhalt übernommen werden.
c)
hinter "Pflanzzeit:" soll aus Tabellenblatt "Datenübernahme" Zelle "W4" der Inhalt übernommen werden.
d)
hinter "Fläche in Dekar:" soll aus Tabellenblatt "Datenübernahme" Zelle "V4" der Inhalt übernommen werden.
2.
"Text Box 32" soll folgenden festen Text haben:
SYSAD-Daten (das soll in Arial, größe 10, Fett stehen)
Datum letzte Formatierung: (diese Zeilen sollen in Arial, größe 8, Fett stehen)
Datum letzte Datei-Aktualisierung:
a)
hinter "Datum letzte Formatierung:" soll das Datum eingetragen werden an dem jemand im Tabellenblatt "Formatierung" in den nicht schreibgeschützten Zellen eine Änderung gemacht hat
b)
hinter "Datum letzte Datei-Aktualisierung:" soll das Datum eingetragen werden an dem jemand im Tabellenblatt "DatenquelleBäume" Änderungen gemacht hat (Zellen hineinkopiert und per Hand Zellinhalte geändert)
Ich weiss leider nicht wie die Codes ausehen müssen?
Bitte um Hilfe!
Grüße aus Berlin

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Problem Textfelder
27.08.2006 22:23:36
Peter
Hallo Peter,
zu 1.
Unterschiedliche Schriftgrößen und fett bzw. nicht fett in einer Textbox geht meines Wissens nicht. Du musst dich auf eine Schriftgröße beschränken.
Als Anlage mein Befüllen der TextBox1. Wo du das sinnvoll einfügen kannst weiß ich nicht, denn ich kenne deine Anwendung nicht.
https://www.herber.de/bbs/user/36200.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: VBA Problem Textfelder
28.08.2006 10:59:11
Peter
Hallo,
das funktioniert nur mit Textfeldern aus der Symbolleiste "Steuerelemente-Toolbox" auf Tabellenblättern.
Ich habe aber ein Diagramm-Blatt.
Dort ist es nicht möglich Textfelder aus der Symbolleiste "Steuerelemente-Toolbox" einzufügen. Die einzigen Textfelder die man dort einfügen kann sind die aus der Symbolleiste "Zeichnen". Ich habe die Datei um ein Diagramm-Blatt ergänzt und nochmal reingestellt. Wenn es mit diesem Textfeld nicht möglich ist, gibt es vielleicht eine andere Möglichkeit mein Problem zu lösen?
https://www.herber.de/bbs/user/36206.xls
Grüße aus Berlin
Anzeige
AW: VBA Problem Textfelder
28.08.2006 11:39:33
Peter
Hallo Peter,
ich kann dir in Standard-Schrift einen Text in dein TextFeld bringen, mehr schaffe ich z. Zt. nicht.
https://www.herber.de/bbs/user/36208.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: VBA Problem Textfelder
28.08.2006 11:47:02
Peter
Hallo Peter,
so wird es auch fett und in größerer Schrift dargestellt:
https://www.herber.de/bbs/user/36209.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: VBA Problem Textfelder
28.08.2006 12:50:21
Peter
Hallo Peter,
danke der Code funktioniert.
Ich habe allerdings auch eine einfachere Lösung gefunden.
Einfach ins Textfeld reinklicken, danach in die Formelleiste reinklicken, dann z.B. "='Tabelle1'!$A$1" eintragen, in dieser Zelle muß dann der Text und die Werte drinnstehen, Dynamisiert z.B. durch die Funktion "VERKETTEN().
Ich suche immer noch nach Lösungen für Problem 2 (Datum der letzten Formatierung und Datum der letzten Datei-Aktualisierung)
Grüße aus Berlin
Anzeige
Datum, Zeit, Username letzte Änderung speichern
28.08.2006 13:14:04
Peter
Hallo,
ich habe einen Code gefunden, der Datum etc. der letzten Änderung speichert.
Leider bleibt das Makro bei mir hängen und ich weiß nicht warum.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Static intSchonGespeichert% 'initialiesiert mit 0
Dim lngZeile As Long
With Worksheets("ÄnderungsListe") 'Tabellenname
'nur einen Speichervorgang je Öffnung merken
lngZeile = .Cells(Rows.Count, 1).End(xlUp).Row + intSchonGespeichert + 1
.Cells(lngZeile, 1).Value = Format(Now, "DD.MM.YYYY") 'Datum Spalte A
.Cells(lngZeile, 2).Value = Format(Now, "HH:MM:SS") 'Uhrzeit Spalte B
.Cells(lngZeile, 3).Value = Environ("Username")
End With
intSchonGespeichert = -1
End Sub

Den Code habe ich bei DieseArbeitsmappe eingefügt!
Grüße aus Berlin
Anzeige
AW: Datum, Zeit, Username letzte Änderung speichern
28.08.2006 13:54:33
ingUR
Hallo, Peter,
ich vermute, dass die Methode Rows sich nicht auf das gewählte Worksheet beziehen kann - obwohl m.E. in diesem Fall eine Fehlermeldung erscheinen sollte -, daher auch davor den Basisobjektpunkt setzen:
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + intSchonGespeichert + 1
Gruß,
Uwe
AW: Datum, Zeit, Username letzte Änderung speichern
28.08.2006 15:13:18
Peter
Hallo,
danke Uwe, mit Punkt funktionierts:
Gibt es einen Code der nach jedem öffnen (die letzten 20 z.B) Datum,Zeit, Username abspeichert? Kann er einfach unter "Private Sub Workbook_BeforeSave" gestellt werden?
Die Sache mit dem Username gefällt mir auch nicht so recht. Ich möchte lieber das jeder der die Anwendung öffnet einen Benutzernamen und ein Passwort hat und dieser abgespeichert wird. Passworte kann man ja vergeben aber Benutzernamen hab ich nicht gefunden. Was kann man da machen?
Grüße aus Berlin
Anzeige
AW: Datum, Zeit, Username letzte Änderung speichern
28.08.2006 16:37:25
ingUR
Hallo, Peter,
es schön, dass es mit dem Referenzierungspunkt geklappt hat.
Zu Deinem anderen Punkt bezüglich der Log-Tabelle gibt es m.E. verschidene Lösungsansätze, die allerdings auf Dein Projekt und dessen Einsatz (Anzahl der Benutzer, ggf. an der gleichen XLS-Datei, Zeiterfassung, allgemeine oder eingeschränkte Änder- und Einsehbarkeit u.v.m. ) abgestimmt sein sollten.
"Username" auf der Systemebene (Ermittelt über Environ-Abfrage) sind auf Systenebene anzulegen und können so jedem Anmeldenden am System zugeteilt werden. Auf dieser Ebene ist dann auch eine besondere Verwaltung von Dateiabgrenzung zwischen den Benutzern möglich (C:\...\Username\Eigene Dateien ...; Schreib-/Leserechte).
Auf der EXCEL-Applikationebene kannst Du mit geschützen Aprbeitsmappen arbeiten, die nur mit Kennwort freigegeben werden (einfacher Arbeitsschutz, kein Sicherheitsschutz).
Schließlich ist zu entscheiden, ob die Log-Einträge an die Arbeitsmappe gekoppelt oder "zentral" in einer Datei (VB-Befehl: OPEN "Datie" FOR OUTPUT ...) gesammelt werden sollen, in der die Einträge z.B. als Testdatei erfolgen und für die Auswertung beliebig mit einem Texteditor oder mit EXCEL geöffnet werden sollen.
Allein diese unterschiedlichen Rahmenbedingungen zeigen m.E., dass eine Vorplanung erstellt werden sollte, um dann den geeigneten Weg zu wählen und so möglicherweise Mehrfachansätze zu vermeiden.
Nun, kein Programmcode - diesen bei festgelegtem Weg zu erstellen ist nicht die wirkliche Entwicklungsarbeit -, doch vielleicht ein Hinweis auf Gesichtspunkte, über die Du Dir bestimmt schon als Entwickler Klarheit verschaft hast, mir allerdings zur zielgerichteten und effektiveb Beantwortung Deiner Frage nicht bekannt sind.
Gruß,
Uwe
Anzeige
AW: Datum, Zeit, Username letzte Änderung speichern
29.08.2006 17:30:51
Peter
Hallo Uwe,
Danke für deine Hilfe und Denkanregungen.
Nach längerem Überlegen bin ich zu einer für mich ausreichenden und relativ einfachen Lösung gekommen.
Ich habe meiner Anwendung ein weiteres Arbeitsblatt eingefügt mit dem Namen "Start".
Dort sind nur zwei Felder (Benutzername und Passwort) und eine Schaltfläche (Start) zu sehen. Die Schaltfläche "Start" startet das Makro das alle anderen Blätter erscheinen lässt und das eigene Blatt verschwinden lässt nur dann, wenn Benutzername und Passwort stimmen. Den Inhalt der Zellen "Benutzername" und "Passwort" lasse ich mir mit Datum und Uhrzeit in meine Tabelle "ÄnderungsListe" wie folgt eintragen.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Static intSchonGespeichert% 'initialiesiert mit 0
Dim lngZeile As Long
With Worksheets("ÄnderungsListe") 'Tabellenname
'nur einen Speichervorgang je Öffnung merken
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + intSchonGespeichert + 1
.Cells(lngZeile, 1).Value = Format(Now, "DD.MM.YYYY") 'Datum Spalte A
.Cells(lngZeile, 2).Value = Format(Now, "HH:MM:SS") 'Uhrzeit Spalte B
.Cells(lngZeile, 3).Value = Sheets("Start").Range("$F$16") 'Benutzername Spalte C
.Cells(lngZeile, 4).Value = Sheets("Start").Range("$F$18") 'Passwort Spalte D
End With
intSchonGespeichert = -1
End Sub

Auf wieviel Einträge ist die Liste beschränkt?
An welcher Stelle im Code steuere ich das?
Grüße aus Berlin
Anzeige
AW: Datum, Zeit, Username letzte Änderung speichern
29.08.2006 19:11:56
ingUR
Hallo, Peter,
die Liste, die Du angelegt hast, ist derzeit auf 216-1 = 65535 Zeilen begrenzt, einschließlich evetuell vorhandener Kopfzeile(n). Das ist genau die Zahl der maximal möglichen Zeile und die Grenze der Positiven Werte einer Long-Variablen.
Jedoch selbst wenn diese Anzahl bei zehnmaligen Öffnen der Mappe pro Tag (einschl. Sonn-/Feiertage und Sylvester ;) ) nach ca. neun Jahren erreicht ist, ist es möglich, durch einen einfachen Spaltenalgorithmus die nächste freie Kolonne zu eröffnen:
(ungeprüfte Programmidee)
const maxRow as Long = 65535 'Kopfzeilen ggf. davon subtahieren!
...
static Eintrag as long, sp as integer, r as long
EintragNr=EintragNr+1
sp=4*int(EintragNr/maxRow), r=EintragNr-int(EintragNr/maxRow)
Cells(r,sp).activate
Cells(r,sp)=IntemNr1
Cells(r,sp).Offset(0,1) = ItemNr2
Cells(r,sp).Offset(0,2) = ItemNr3
Gruß,
Uwe
Anzeige
AW: Datum, Zeit, Username letzte Änderung speichern
30.08.2006 13:16:16
Peter
Hallo,
danke an alle für die tolle Hilfe!
Grüße aus Berlin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige