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

Checkboxen Auslesen und Inhaltsverzeichnis erstellen

Checkboxen Auslesen und Inhaltsverzeichnis erstellen
24.10.2023 13:49:59
DerFreddy
Liebe Excel Gemeinde,

und wieder stehe ich vor einem Problem, bei dem ich mir nicht sicher bin ob dieses überhaupt lösbar ist.

Ich probiere es mal zu beschreiben.
Ich habe für meinen Job ein Arbeitsschutztool gebaut um mir die Arbeit gegenüber den Mandanten zu vereinfachen um automatisiert aus Word Vorlagen z.B. Gefährdungsbeurteilungen erstellen zu lassen.
Aufbau:
z.B. im Bereich der Gefährdungsbeurteilungen habe ich die Titel als Checkboxen aufgelistet und ich muss nur noch abhaken welche für meinen Mandanten relevant sind. Klicke ich dann auf Gefährdungsbeurteilung generieren, rattert er alle abgehakten checkboxen durch und erstellt automatisiert die Gefährdungsbeurteilungen und speichert diese ab in einem vordefinierten Ordner ab.

Soweit so gut. Funktioniert einwandfrei.

Jetzt möchte ich hingehen und noch laufende Nummern beim Abspeichern vergeben lassen. Und zwar nur bei den Abgehakten Checkboxen. Und da wird es knifflig.
Ich weiss, dass ich Variablen definieren muss, komme aber bei der n+1 Geschichte nicht weiter. Zu allem Überfluss soll die Laufende Nummer vor dem Dateinamen ausgespuckt werden und die Dateinamen sind alle unterschiedlich. Heisst ich habe da auch keine Konstante.

Wie würdet Ihr das Ganze lösen? Ich habe probiert vorab Variablen zu definieren und diese dann, wenn die Checkbox "True" ist weiter zu verarbeiten... Aber wieder mal starre ich schon zu lange auf den Code... Jemand eine Idee?

Ich habe bei der ersten Checkbox mal einen Versuch unternommen. Aber das klappt eben nur mit einer Checkbox. :-)


Viele Grüße!
Frederik





Sub GeneriereGfbu()

Dim Name_Tischlerei As String
Name_Tischlerei = Range("D2").Value
Dim Name_Ansprechpartner As String
Name_Ansprechpartner = Range("D3").Value
Dim LfdNummer As String 'Interne Vorgangsnummer fortlaufend
LfdNummer = Range("D4").Value
Dim Datum As Date
Datum = Date



Dim Pfad As String
Pfad = "B:\betr. Beratung\10_Firmenberatung\"
Dim Ordnername As String
Ordnername = LfdNummer & "_" & Name_Tischlerei & "\"
Dim OrdnerGefaehrdungsbeurteilung As String
OrdnerGefaehrdungsbeurteilung = "10_Gefährdungsbeurteilungen"
Dim Endpfad As String
Endpfad = Pfad & Ordnername & OrdnerGefaehrdungsbeurteilung & "\"

Dim PreNum As String
PreNum = "3.1."
Dim SeNum As Integer
SeNum = 0

Dim Lfd_Nummer_Dateiname As Integer


Dim wordapp As Object
Set wordapp = CreateObject("word.Application")

'Allgemein
'Gefährdungen allgemein
If Range("A6") = True Then
Lfd_Nummer_Dateiname = PreNum & SeNum + 1

wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Allgemeine-Gefaehrdungen.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & Lfd_Nummer_Dateiname & "-Allgemeine-Gefaehrdungen.docx"
wordapp.ActiveDocument.Close
End If

'Arbeitsschutzorganisation
If Range("B6") = True Then
wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Arbeitsschutzorganisation.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & "GBO-Arbeitsschutzorganisation.docx"
wordapp.ActiveDocument.Close
End If

'Arbeitsstätte allgemein
If Range("C6") = True Then
wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Arbeitsstaette-allgemein.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & "GBO-Arbeitsstaette-allgemein.docx"
wordapp.ActiveDocument.Close
End If

'Und so weiter - ca. 70 Checkboxen

wordapp.quit

End Sub


23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
24.10.2023 14:16:27
Oberschlumpf
Hi,

anhand deines ganz-bisschen-Code-Zeigen erkenne ich null, was du erreichen willst - aber -

Anstelle, dass du 70 (extra)Controls der Excel-Tabelle hinzufügst, wieso verwendest du nicht gleich direkt die Zellen in einer Tabelle von Excel?

Und per Upload eine Bsp-Datei mit genügend Bsp-Daten zu zeigen könnte hier vllt auch sehr gut helfen.

Ciao
Thorsten
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
24.10.2023 15:44:17
Mullit
Hallo,

viell doch mal ins Blaue hinein zwei Mögl., entweder fragst Du auf den Range-Bereich Deiner Boxen ab, oder checkst den Wert der Boxen selbst ( bin jetzt von Formular-Boxen ausgeg...) und zählst dann Deine LaufVar hoch:
Option Explicit


Public Sub test()
Dim Lfd_Nummer_Dateiname As Long
Dim objRange As Range
For Each objRange In Range(Cells(6, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1))
If objRange.Value Then
Lfd_Nummer_Dateiname = Lfd_Nummer_Dateiname + 1

'// Hier Dein übr. Code....

End If
Next
End Sub

Public Sub test2()
Dim Lfd_Nummer_Dateiname As Long
Dim objShape As Shape
For Each objShape In ActiveSheet.Shapes
If objShape.FormControlType = xlCheckBox Then
If objShape.OLEFormat.Object.Value = xlOn Then
Lfd_Nummer_Dateiname = Lfd_Nummer_Dateiname + 1

'// Hier Dein übr. Code....

End If
End If
Next
End Sub

Ansonste kannst Du ressourcenschonder, wie Thorsten schon schrieb, auch die Zellen selbst, mit Wingdings formatiert als Boxen nutzen, aber ok...

Gruß, Mullit
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
24.10.2023 16:08:13
DerFreddy
Ich danke euch herzlichst!
Ich werde mich mal herantasten und weiter testen. Danke für den Code Vorschlag. Ich probiere es mal aus!

Ja jetzt wo ihr es sagt, hätte ich die Checkboxen wohl auch in Excel direkt einbetten können. So habe ich sie mit der darunterliegenden Zelle verknüpft.

Ich bin leider auch erst am Anfang meiner VBA Karriere und danke euch sehr für euer Feedback. Learning by Doing. Nächste Excel wird dann aufgeräumter.

Ich habe euch die Excel mal angehängt. Aber bitte nicht erschrecken. Bin noch dabei da Ordnung rein zu bringen weil alles mit der Zeit gewachsen ist.

https://www.herber.de/bbs/user/163692.xlsm

Es macht mir tierisch Spaß, ist aber von Zeit zu Zeit sehr frustrierend.

Viele Grüße!
Frederik
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 13:04:02
DerFreddy
Hey ihr beiden!

Ich habe jetzt angefangen alles nach Oberschlumpfs Vorlage umzubauen.

Allerdings möchte ich noch eine Sache verstehen, damit ich sie eventuell in Zukunft auch verwenden kann.

Bei diesem Quellcode von @Mullit:


Dim Lfd_Nummer_Dateiname As Long
Dim objShape As Shape
For Each objShape In ActiveSheet.Shapes
If objShape.FormControlType = xlCheckBox Then
If objShape.OLEFormat.Object.Value = xlOn Then
Lfd_Nummer_Dateiname = Lfd_Nummer_Dateiname + 1
'einfügen von meinem code
end if
end if
next


Hier habe ich das Prinzip verstanden und dass vba hier checkt welche checkbox auf "on" gesetzt ist und dann den Dateinamen hochzählt.

Wenn ich das Ganze einsetze, dann geht VBA hin und nimmt die abgehakten Checkboxen (Beispiel Checkbox 1 und Checkbox 2) und speichert beide mit laufender Nummer ab. Heisst: 1-Checkbox1.docx, 1-Checkbox2.docx und 2-Checkbox1.docx, 2-Checkbox2.docx.

Bei drei checkboxen habe ich dann neun Dateien, vier 16 usw.
Wie kann man sowas unterbinden und dass vba hingeht und wirklich pro datei nur eine laufzahl nimmt?

ich bastel weiter! Danke für euer Feedback und eure Hilfe. Lerne viel durch euch! :-)
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 13:13:01
Oberschlumpf
Hi,

ich glaub, ich versteh dich nicht ganz...deswegen lass ich den Beitrag offen.

Wenn du also deine ganze Datei nach meinem Muster "umbauen" willst, dann brauchst du doch den Code von Mullit nicht mehr.
Denn Mullit's Code "belässt" es ja bei "deiner alten Idee mit den CheckBox-Controls" und bezieht sich in seinem Code genau nur auf diese.

Wenn du aber nach meiner Idee alle Blätter umgebaut hast - dann gibt's doch keine CheckBoxen mehr - weil eben in Spalte A immer "ü" eingetragen ist, was dann den Haken darstellt.

Oder aber..meine erste Vermutung ist richtig - und ich hab dich falsch verstanden^^ :-)

Ciao
Thorsten
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 13:32:08
DerFreddy
Hey Thorsten,

ne du hast mich schon richtig verstanden. Der Umbau der Datei ist mit dem entfernen der Checkboxen und dem Umbenennen der Dateien ist die ressourcenschonendere Variante und mein Hauptziel. Weil ich jetzt einfach auch noch nicht weiss, was noch alles in das Tool dazukommen wird in Zukunft, ist das die Ideallösung und daran arbeite ich.

Ich habe manchmal so eine negative Eigenschaft, dass ich durch Ausprobieren lerne und einen "unfertigen" Code nicht gerne liegen lasse. Sowas will ich dann lösen. Wenn es dann funktioniert ist der innere Monk befriedigt und ich speicher es dann unter Codevorlagen ab. Ich bin mir zwar dann noch nicht sicher wofür ich es dann benötige, aber man hat es. ^^ :-)

Ich sauge das gerade alles auf wie einen Schwamm und es macht mir wahnsinnig Spaß und diese kleinen Erfolgserlebnise treiben mich dann an.

Liebe Grüße
Frederik
Anzeige
ok :-) mal sehen, was Mullit dazu schreibt...owT
25.10.2023 13:48:51
Oberschlumpf
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 19:33:12
Mullit
Hallo,

bleib da doch bei Thorstens Version, er hat sich ja viel Mühe gemacht, mit Wingdings & Dbl/Click Event ist ja immer viel schlanker und wenn die Kiste rennt, ists doch schonmal gut.

Ich hab mir jetzt Dein Abspeichern Part in Word auch nicht näher angeguckt, aber Du müsstest dann dabei die LfdNr aus der Schleife rausnehmen und nur einmalig beim Abspeichervorgang hochzählen, dann ggF in der Tabelle zw.-speichern...Den Part müsste Thorsten ja auch irgendwie dabeihaben, dann übernimmst Du das einfach....;-)

Aber wie gesagt, wenn die Kiste läuft, bleib doch dabei...;-)

Gruß, Mullit
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
26.10.2023 09:28:44
DerFreddy
Guten Morgen Ihr Beiden!

ich hab die ganze Kiste umgeschrieben und es funktioniert.

Habe alles verstanden und begriffen was wofür da ist. Ein riesiges Dankeschön schon einmal dafür!

https://www.herber.de/bbs/user/163744.xlsm

Auch das Problem mit mehreren Spalten habe ich gelöst.
Dateien alle umbenannt und es läuft.

Das Einzige was zwischen drin passiert, ist, dass ich eine Fehlermeldung bekomme, dass schon eine Worddatei geöffnet ist und ob ich diese schreibgeschützt öffnen möchte.
Heißt er öffnet etwas im Hintergrund und schließt es dann nicht mehr. Aber ich denke damit kann ich erst einmal arbeiten und mich jetzt dem Arbeitsschutzhandbuch nähern mit Inhaltsverzeichnis usw.

Vielen Dank euch auf jeden Fall!
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
26.10.2023 10:04:16
Oberschlumpf
Moin Frederic :-)

Hier "spricht" die Oberschlumpf GmbH...hehe

Man man...HUT AB! kann ich nur sagen - da haste dir aber echt viel Arbeit gemacht...und das Ganze wird sogar mit Erfolg gekrönt!...yeah..SO muss das sein! :-)

Wegen deines hin-und-wieder-Problems fällt mir vielleicht noch das hier ein:

Kannst du gemau eingrenzen, WANN der Fehler auftritt?
Dann starte genau den Codeablauf mal mit F8 (Einzelschritte im Code).
Und - bevor du weißt, mit dem nächsten Drücken auf F8 würde der Fehler auftreten -
...öffne mal mit STRG-ALT-DELETE den Task-Manager
...nun such im Task-Manager nach einem Eintrag "Microsoft Word"
...beende diesen Task
...und nun drück im VBE wieder auf F8

Erscheint der Fehler weiterhin?
Nein = Irgendwo in deinem Code wird a) die zuletzt geöffnete Word-Datei oder auch b) die App Word nicht richtig beendet
Ja = dann weiß ich doch nich weiter :-)

Ciao
Thorsten....und hast du echt gut gemacht!
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
27.10.2023 08:01:02
DerFreddy
Guten Morgen!

Ja das habe ich auch schon getestet. Es tritt nur sporadisch auf. Von daher kann ich erstmal damit leben.

Habe mich gestern an das Thema Inhaltsverzeichnis der einzelnen Bereiche herangewagt.
Mein Ansatz ist die Dateinamen der einzelnen Sektionen in einem verstecken Tabellenblatt ausspucken zu lassen und diese dann zu bereinigen.
Heißt die Endung .docx und den Anfang (z.B.BAA5) bis zum Bindestrich entfernen und dann meine laufende Nummer in die Spalte davor einzutragen.

Und das Ganze dann in einer Worddatei ausspucken lassen. Ich habe gestern schon etwas mit Codeschnippseln rumprobiert und ich habe es soweit, dass er mir die Dateinamen ohne Endung ausspuckt aber mit dem Teil vorne tue ich mich schwer. Mein Ansatz war, dass die erste 5 Zeichen aus dem Namen gelöscht werden. Allerdings habe ich dann das Problem dass bei manchen eben der Bindestrich auch weggestrichen wird.

Ich bastel mal noch etwas. :-)
Mal sehen was dabei noch raus kommt :-D

Viele Grüße!
Anzeige
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
27.10.2023 13:29:44
DerFreddy
Hey Ihr Lieben!

ich stehe komplett auf der Leitung... oder ich habe zu viele Zeilen Code diese Woche inhaliert...



Dim Name_GFBU As Range
Dim PreNum As String
PreNum = "3.1."
Dim SufNum As Long
SufNum = SufNum + 1
Dim laufende_nummer_gfbu As String

For Each Name_GFBU In Range(Cells(1, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2))
'hier weiss ich nicht was ich machen soll... ich steh komplett auf der Leitung...
laufende_nummer_gfbu = PreNum & SufNum
Next
End Sub


Hier habe ich mal die ganze Datei hochgeladen...
https://www.herber.de/bbs/user/163850.xlsm

Ich wünsche euch ein schönes Wochenende!

Viele Grüße
Frederik

AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
27.10.2023 13:42:47
Oberschlumpf
Na Frederik,

aber deine Frage, was genau du da erreichen willst, wo du nich weiterkommst, wirst du uns aber schon noch verraten, oder?^^ :-P
zumindest ich hab jetzt nich so viel Lust, a) erst mal im Gesamt-Code nach genau deinem Problem-Code zu suchen, und b) will ich auch nich unbedingt so lange auf F8 drücken müssen, bis ich auch ohne deine Frage verstehe, was du denn meinst.

Ciao
Thorsten
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
30.10.2023 15:24:44
DerFreddy
Hey Du,

irgendwie hat der meinen Beitrag vom Wochenende nicht gefressen.

Also: Natürlich hast du recht. Ohne zu sagen was ich will, macht das alles wenig Sinn ^^ :-)

ALso ich habe im Sheet Arbeitsschutzhandbuch einige Buttons erstellt. Unter anderem auch Buttons zum Erstellen von Inhaltsverzeichnissen mit einem Zwischenschritt in einem neuen Tabellenblatt.

Hier gehe ich hin und lese den Ordnerinhalt z.B. Gefährdungsbeurteilungen aus und entferne dann die Endung .docx und die ersten 5 Buchstaben. Ausgegeben wird das ganze dann in Spalte B. In Spalte A möchte ich dazugehörig eine laufende Nummer generieren und die soll aufhören wenn in Spalte B die Inhaltsliste zu Ende ist.

Ich habe ein Prefix definiert: "3.1." und hinten dran dann ein Suffix was die laufende Nummer darstellen soll. Was am Ende dann z.b. 3.1.1, 3.1.2, 3.1.3, usw. ergeben soll.

Ich schaue dass ich morgen mittag wieder dran setze. Habe bzw. hatte heute und morgen außerhaus Termine.

Aber wenn dir irgendwas kluges einfällt. Gib gerne deinen Senf dazu :-)
Ich schaue dass ich morgen auch die Datei noch einmal anhänge und hochlade.

Viele Grüße und einen schönen Abend!
Frederik

AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
30.10.2023 16:18:23
Oberschlumpf
Hi Frederik,

a) ich weiß, dass ich heute wohl auch nicht wirklich Zeit haben werde, hier noch mal hilfreich tätig zu sein
b) wirds langsam knapp mit der "Lebenszeit" dieses, deines Beitrags, weil der wohl demnächst im Archiv verschwindet - da wird antworten nur noch schwierig möglich sein

Wegen b) würde ich dir empfehlen, erstell einen neuen Beitrag; und für neugierige, weitere, vielleicht-Helfer füg den ARCHIV-Link dieses Beitrags, in dem ich gerade antworte in deinen neuen Beitrag mit ein.

Ciao
Thorsten
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
31.10.2023 14:53:10
DerFreddy
Ich habs gelöst!

Danke dir nochmal für die Hilfe! Habe viel gelernt. :-)

Bis dahin viele Grüße
Frederik
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
31.10.2023 15:04:03
Oberschlumpf
dann könntest du uns ja vielleicht auch verraten, WIE du es gelöst hast.
Deine Frage werden bestimmt auch Andere mal haben - und die freuen sich dann, wenn sie diesen Gesamt-Beitrag hier erst lesen, und dann, ganz am Ende alle Lösungen haben ;-)
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
31.10.2023 15:10:47
DerFreddy
es war sehr einfach. aber es ist ja oft so... man sieht vor lauter Bäumen den Wald nicht.



Dim PreNum As String
PreNum = "3.1."
Dim SufNum As Long
SufNum = 0


Dim i As Long

For i = 1 To 65536
If Cells(i, 2) > "" Then
SufNum = SufNum + 1
Cells(i, 1) = PreNum & SufNum
End If
Next


und hier jetzt das Gesamtpaket:
https://www.herber.de/bbs/user/163926.xlsm


es wächst und gedeiht :-)
Danke dir nochmal für die Hilfe
bitte, sehr gerne! - owT
31.10.2023 15:14:48
Oberschlumpf
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
24.10.2023 17:55:01
Oberschlumpf
Hi Frederik,

ich habe mal....in deiner Bsp-Datei erst mal nur das Blatt "Gefahrstoffbetriebsanweis_Check" so geändert, wie ich mir eine einfachere Handhabung vorstellen könnte.

https://www.herber.de/bbs/user/163694.xlsm

Schau dir das Blatt mal an
- ich hab alle Checkboxen gelöscht
- die Beschreibungstexte der Checkboxen hab ich in Spalte B eingetragen
- Spalte A hab ich so programmiert, dass du...
...bei Anklicken nur einer Zelle in Spalte A auch einen Haken siehst (wie in der Checkbox)
...bei erneuten Anklicken der selben Zelle der Haken auch wieder verschwindet

Erreicht hab ich das, in dem ich die Schriftart in Spalte A auf WingDings geändert habe.
Und um einen Haken anzuzeigen, muss man den kleinen Buchstaben "ü" eintragen.

Dementsprechend hab ich auch deinen Code für den Button "Gefahrstoffbetriebsanweisung generieren" so geändert, dass nun die einzelnen Zellen A5:A21 nicht mehr auf TRUE, sondern auf "ü" geprüft werden.

Den Code für den Button kann ich nicht testen, weil mir all die Word-Dateien fehlen, die geöffnet werden, wenn Zelle in A = "ü" als Eintrag haben.

Würde dir das denn so gefallen, a) wie ich es für das eine Blatt eingerichtet habe, oder b) willst du bei den Checkboxen bleiben?
Wenn a) gut für dich ist, dann müsstest du bei all den anderen Blättern noch die Checkboxen löschen und Spalte A + B so einrichten, wie ich es schon für das eine Blatt gemacht habe.

Ciao
Thorsten
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 08:37:43
DerFreddy
WOW!

Danke für die Hilfe! Sieht natürlich gut aus mit dem grünen Haken!

Ich lerne weiter dazu! Danke!

Mit den Word-Verknüpfungen funktioniert alles :-)

Ich werde mal weiter basteln!

Viele Grüße
Frederik
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 11:11:03
Oberschlumpf
sooo Frederik :-)

Und wenn du noch mehr lernen willst, dann nimm dir jetzt Zeit, lies alles geduldig durch - und - versuch zu verstehen :-)

Denn ich brauch....deine Hilfe! - ohne dem wirds nicht funktionieren (wann das so weit sein wird, wirst du lesen ;-) )

Also...

Ich freu mich, dass dir das mit den grünen Haken auch so gut gefällt.
Darauf aufbauend habe ich, weiterhin erst mal nur für das Blatt "Gefahrstoffbetriebsanweis_Check" deinen Code für den Button "Gefahrstoffbetriebsanweisung generieren" sehr stark geändert.

weil...
Du benötigst zur Kontrolle der Zellen A5:A22 = 126 CODEZEILEN !!!
Du hast immer wieder geschrieben (ich zitiere deinen Code jetzt nur für Zelle A5)


If Range("A5") = "ü" Then
wordapp.Documents.Open "B:\1. Tischler-Innung Berlin\betr. Beratung\01_Berufsgenossenschaft_BGHM\10_Betriebsanweisung_Formulare\02_Gefahrstoffe\BA_Lösemittelhaltig.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.SaveAs Endpfad & "BA_Lösemittelhaltige_Lacke.docx"
wordapp.ActiveDocument.Close
End If
'...all das wiederholt sich für die Zellen A6 bis A22

Wie gesagt, du benötigst allein dafür 126 Codezeilen.

Mein Code - der ganz genau das Gleiche macht, wie deiner - benötigt nuuuur ganze 11 Codezeilen :-)...und sieht so aus...


For lloRow = 5 To 22
If Range("A" & lloRow) = "ü" Then
lstr_ZIEL_Datei = Dir(lstr_QUELL_Pfad & "BA" & lloRow & "*.docx")
With wordapp
.Documents.Open lstr_QUELL_Pfad & lstr_ZIEL_Datei
.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
.ActiveDocument.SaveAs Endpfad & lstr_ZIEL_Datei
.ActiveDocument.Close
End With
End If
Next

Damit aber mein Code funktioniert, brauch ich bitte ab jetzt deine Hilfe.
Du müsstest deine Word-Dateien, die bei "ü"-Eintrag in Spalte A geöffnet werden...umbenennen...alle!

...und zwar so...

BA_Lösemittelhaltige_Lacke.docx = BA5_Lösemittelhaltige_Lacke.docx
BA_Wasserlacke.docx = BA6_Wasserlacke.docx
BA_Holzstäube.docx = BA7_Holzstäube.docx
BA_Öle_Wachse.docx = BA8_Öle_Wachse.docx
BA_Furnierleime.docx = BA9_Furnierleime.docx
BA_Ammoniaklösung.docx = BA10_Ammoniaklösung.docx
...BA11 bis BA19 genau so...
BA_Aceton.docx = BA20_Aceton.docx
BA_Styrol.docx = BA21_Styrol.docx
BA_Methylethylketonperoxid.docx = BA22_Methylethylketonperoxid.docx

Du hast vielleicht schon gemerkt, dass immer hinter "BA" eine Nummer stehen muss - das ist die jeweilige Zeilennummer, in der in Spalte A ein "ü" stehen könnte.
Wichtig! Die Nummern hinter "BA" müssen für jede Datei - direkt hinter "BA" - genau so eingetragen werden, wie ich es dir exemplarisch gezeigt habe.

Mit meinem Code hab ich die Vorteile genutzt, dass a) all deine Word-Dateien im gleichen Verzeichnis gespeichert sind, und b) dass alle Word-Dateien mit "BA" anfangen.
Damit ich weiß, dass mein neuer Code auch funktioniert, hab ich den Code auch getestet...

- ich habe 2 Word-Dateien im gleichen Verzeichnis erstellt:
BA5_Lösemittelhaltige_Lacke.docx
BA6_Wasserlacke.docx
- und ich habe in beiden Dateien auch die Textmarke für den Namen der Tischlerei gesetzt
- dann hab ich im Blatt "Gefahrstoffbetriebsanweis_Check" in den Zellen A5 + A6 "den Haken gesetzt"; also ein "ü" eingetragen per Mausklick
- jetzt hab ich mit Klick auf den Button meinen Code gestartet
zuerst wird in Zelle A5 das "ü" gefunden
die Datei BA5_Lösemittelhaltige_Lacke.docx wird geöffnet
in der geöffneten Datei wird dort, wo die Textmarke ist, der Name der Tischlerei eingetragen
die Datei wird - in einem anderen Verzeichnis - gespeichert und geschlossen
- alles wiederholt sich nun mit dem nächsten, gefundenen "ü" in Spalte A, nämlich in Zeile 6

Alle weiteren Zeilen bis 22 in Spalte A werden zwar auch auf "ü" geprüft, aber es passiert nix weiter, weil es ja keine gesetzten Haken ("ü") in Spalte A mehr gibt.

Soooooo, ich habe fertig! :-)
Hast du alles verstanden? Ich vermute: "Noch nicht" - aber das ist nicht schlimm! Lies einfach alles noch mal durch...bis du es verstanden hast - und dann probier mal meine neue Datei aus :-)

Hier, bitte schön....
https://www.herber.de/bbs/user/163709.xlsm

bitte beachte auch die Kommentare im Code hinter meinen neuen Codezeilen

Ciao
Thorsten
AW: Checkboxen Auslesen und Inhaltsverzeichnis erstellen
25.10.2023 11:46:22
DerFreddy
Wow! Wahnsinn!

Ich danke dir sehr.

Bis jetzt habe ich alles verstanden und auch wie du den Code vereinfacht hast.
Befehle verstehe ich. Manchmal kann es ja wirklich simpel sein.
Das baue ich auf jeden Fall so um! Brauche ich etwas Zeit für :-)

Und damit sind die anderen Probleme dann auch einfacher zu lösen!

Vielen vielen Dank!

Viele Grüße
Frederik

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige