Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  VBA-Laien Frage...

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  VBA-Laien Frage... (538 mal gelesen)
marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2494
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 18. Jan. 2002 10:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,
ich habe da noch so meine Schwierigkeiten mit dem Verständnis der grundlegenden Sachen in VBA. Deswegen mal eine recht allgemeine Frage zu einem Problem.

Was ich möchte:
Ein Dialogfeld, daß eine Liste der Augenblicklich geöffneten Dokumente anzeigt, und mir die Möglichkeit gibt eines dieser Dokumentre auszuwählen und aktuell zu schalten.

Was ich habe:
Diese beiden Beispiele aus der Acad-Hilfe, die mir schon mal den Weg zeigen, wie man durch die Dokumente "wandert" oder ein Dokument aktiv schaltet.

Sub Example_Documents()
' This example obtains a reference to the Documents collection
' and displays information about the loaded documents.

Dim Document As AcadDocument
Dim msg As String
msg = vbCrLf

' Cycle through the Documents collection and retrieve the names
' of the loaded documents
For Each Document In Documents
msg = msg & Document.Name & vbCrLf
Next

' Display loaded document information
If Documents.Count > 0 Then
MsgBox "The loaded documents are: " & msg
Else
MsgBox "There are no loaded documents!"
End If
End Sub

Sub Example_ActivateMethod()
' This example creates two new drawings and activates each drawing in turn.

Dim NewDrawing1 As AcadDocument
Dim Newdrawing2 As AcadDocument
Set NewDrawing1 = ThisDrawing.Application.Documents.Add("")
Set Newdrawing2 = ThisDrawing.Application.Documents.Add("")

Dim drawing As AcadDocument
For Each drawing In ThisDrawing.Application.Documents
drawing.Activate
MsgBox "Drawing " & drawing.Name & " is active."
Next drawing
End Sub

Was ich nicht kapier:
Wie baue ich ein UserForm für o.g. Funktionalität auf?
Ich brauche 'n "OK"- Knopf und 'ne ListBox schon klar, aber wie muß der Weg aussehen, damit das Ding dann funktioniert? Die ListBox soll beim starten ja gleich die Liste der Dokumente anzeigen... Aber wie geht das? Ich raff's einfach nicht...

Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Harry K
Mitglied
Bau-Ingenieur


Sehen Sie sich das Profil von Harry K an!   Senden Sie eine Private Message an Harry K  Schreiben Sie einen Gästebucheintrag für Harry K

Beiträge: 42
Registriert: 05.11.2001

erstellt am: 21. Jan. 2002 17:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Hallo Marc,

ohne auf dein spezielles Programm einzugehen mal ein paar Tips zu Formularen:

- Aufrufen innerhalb eines Makros mit name.show
- Bei eine Autocad-Interaktion Formular ausblenden mit name.hide
- ‚unload name‘ löscht das Formular aus dem Speicher
- Ein Formular besteht normalerweise aus Steuerelementen, z.B. ein Commandbutton oder eine Listbox, aber auch dem Formular selbst
- Diese Steuerelemente können/sollen mit Ereignissen belegt werden, am einfachsten gelangst Du durch einen Doppelklick auf eine Steuerelement dazu
- Im Code-Fenster kannst Du dann deine Programmzeilen in diese Prozedur schreiben
- Über dem Code-Fenster sind zwei Boxen, die linke zeigt u.a. deine verfügbaren Steuerelemente an, die rechte die möglichen Ereignisse
- Du wirst sehen, es gibt eine Vielzahl von Ereignissen, einfach ausprobieren und die Online-Hilfe benutzen
- Wenn Du willst, dass bestimmte Befehle vor dem Anzeigen des Formulars bereits abgearbeitet werden, dann musst Du in der linken oberen Box den Namen deines Formulars wählen und im rechten Kasten ‚Activate‘, dann erscheint automatisch eine Prozedur, die auf dieses Ereignis (Formular aktivieren) eingestellt ist

Kleines Beispiel:

Private Sub UserForm_Activate()
dim a as integer
for a =  1 to 50
listbox1.additem („hallo“ & str(a))
next a
End Sub

Gruß
Harry Kirch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz