Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MS Excel Aufrufen des nächsten Datensatz im Userform per Button

Frage Microsoft Microsoft Office

Mitglied: Maffinity

Maffinity (Level 1) - Jetzt verbinden

05.02.2013, aktualisiert 19:50 Uhr, 4097 Aufrufe, 4 Kommentare

Hallo zusammen,

ich suche heute schon den ganzen Tag nach einer Lösung für folgendes Problem:

Ich habe ein Userform erstellt in dem Datensätze einer bestimmten Zeile aus einem Tabellenblatt abgerufen werden.

01.
Private Const TabName = "Hardware"      'Tabellenname mit den Datensätzen 
02.
 
03.
Private Const FirstCell = "D1"          'Zell-Adresse Überschrift Datensatz 1 
04.
 
05.
Sub Init(ByVal PlatzNr As Integer) 
06.
    Caption = "Platz " & PlatzNr 
07.
    TextBox1.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 0).Address 
08.
    TextBox2.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 1).Address 
09.
    TextBox3.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 2).Address 
10.
     
11.
    Show 
12.
   
13.
End Sub

Zusätzlich habe ich mehrere Makros im Modul 1 erstellt, die je nachdem welchen Button ich im Dokument anklicke einen bestimmten Wert (in meinem Fall die Zahl der Zeile nach meinen Startwert - Im Beispiel Zeile 111 bzw. 112) an mein Userform weitergeben.

Beispiel:
01.
Sub Schaltfläche111_Klicken() 
02.
Call UserForm3.Init(111) 
03.
End Sub 
04.
 
05.
Sub Schaltfläche112_Klicken() 
06.
Call UserForm3.Init(112) 
07.
End Sub
Das funktioniert soweit reibungslos. Ich würde jetzt aber gerne in dem Userform einen Button einbauen, der den Initialisierungswert im Userform um den Wert "1" erhöht und somit die Datensätze aus der nächsten Zeile angezeigt werden.

Über einen guten Tipp dazu, würde ichmich sehr freuen.

Danke und Gruß
Maffinity

Mitglied: bastla
06.02.2013 um 00:05 Uhr
Hallo Maffinity und willkommen im Forum!

Vielleicht (völlig ungetestet) so:
Erstelle eine globale Variable (durch
Dim PlNr
gleich am Anfang des Moduls.

Diese sollte sich dann durch
01.
Sub Schaltfläche111_Klicken() 
02.
PlNr = 111 
03.
Call UserForm3.Init(PlNr) 
04.
End Sub
für eine bestimmte Zeile bzw
01.
Sub Schaltfläche113_Klicken() 
02.
PlNr = PlNr + 1 
03.
Call UserForm3.Init(PlNr) 
04.
End Sub
für die nächste Zeile verwenden lassen ...

Grüße
bastla
Bitte warten ..
Mitglied: Maffinity
06.02.2013 um 09:05 Uhr
Hallo Bastla,

das hilft mir leider nicht bei meiner Lösung. ich probiere ja im UserForm über einen Button ein Userform mit dem nächsten Datensatz aufzurufen. Wenn ich die Variable im Modul definiere, merkt er sich diese zwar im Modul und damit für die weiteren Buttons im Dokument, aber wenn ich dann im Userform probiere den nächsten Datensatz über einen Button zu öffnen, ruft er mir mit folgenden Code immer wieder den ersten Datensatz auf.
01.
 
02.
Private Const TabName = "Hardware"      'Tabellenname mit den Datensätzen 
03.
 
04.
Private Const FirstCell = "D1"          'Zell-Adresse Überschrift Datensatz 1 
05.
 
06.
Sub Init(ByVal PlatzNr As Integer) 
07.
    Caption = "Platz " & PlatzNr 
08.
    TextBox1.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 0).Address 
09.
    TextBox2.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 1).Address 
10.
    TextBox3.ControlSource = TabName & "!" & Range(FirstCell).Offset(PlatzNr, 2).Address 
11.
     
12.
    Show 
13.
     
14.
End Sub 
15.
Sub CommandButton1_Click() 'Button im Userform der den nächsten Datensatz aufrufen soll 
16.
    PlatzNr = PlatzNr + 1 
17.
    Unload Me 
18.
    Call UserForm3.Init(PlatzNr) 
19.
 
20.
End Sub
Ich hab das zur Veranschaulichung hier auch noch einmal grafisch dargestellt:

fd859a1fdfa276ba7badae5b4613c538 - Klicke auf das Bild, um es zu vergrößern
Das sind Buttons aus dem Dokument durch die die entsprechenden Makros ausgeführt werden:
z.B. Button 1 ruft folgendes Makro aus dem Modul 1 auf
01.
Sub Schaltfläche1_Klicken() 
02.
Call UserForm3.Init(1) 
03.
End Sub
Dadurch wird das oben erwähnte Userform mit dem Wert "1" initilisiert wird und dadurch die Wert aus der ersten Zeile ausgibt.
8b550b7280d54ef871910d837dfffbc7 - Klicke auf das Bild, um es zu vergrößern
562e06cb1331f2aebf1f9c7efcd36e85 - Klicke auf das Bild, um es zu vergrößern

Nun möchte in diesem Userform durch den Klick auf den Okay-Button die Daten aus der nächsten Zeile anzeigen lassen.

Ich hoffe, dass mein Problem jetzt etwas verständlicher ist.

Viele Grüße
Henry
Bitte warten ..
Mitglied: bastla
06.02.2013 um 09:40 Uhr
Hallo Maffinity!

Hatte "Public" vergessen - versuch es mit
Dim Public PlNr
Das Modul hast Du über "Einfügen / Modul" erstellt?

Grüße
bastla
Bitte warten ..
Mitglied: Maffinity
06.02.2013 um 09:55 Uhr
Hallo bastla,

Tausend Dank!!!

Das hat funktioniert, aber mit folgender Variablen-Definition:

01.
Public PlNr
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Datenbanken
gelöst Daten aus Excel in MS SQL Server übernehmen (7)

Frage von Balu418xx zum Thema Datenbanken ...

Microsoft Office
MS Office 365 - Excel stürzt ständig ab (2)

Frage von ribrob zum Thema Microsoft Office ...

Microsoft Office
MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (13)

Frage von Static zum Thema CMS ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...