Anzeige
Archiv - Navigation
252to256
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
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform

Userform
12.05.2003 13:20:42
Johann
Sehr geehrte Damen und Herren

Wie kann ich am besten über Click oder Doppelclick auf "Plst ID" oder "Arbeitsrate" in einer Arbeitsmappe den jeweiligen Datensatz in einer Userform bzw. einem Formular anzeigen ?
Doppelclick soll nur für "Plst ID" oder "Arbeitsrate" funktionieren.(immer erster gefundener Datensatz)

Herzlichen Dank für die Bemühungen.


PLZ GST Text PLST ID Arbeitsrate LfdNr
4600 312 Linz 5640000 Personal 2cf3
5300 523 Wien 2300000 Controlling 34gh
2600 666 Graz 2655555 Buchhaltung 34gi

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Userform
12.05.2003 13:25:12
ChrisL

Hallo Johann

Verstehe ich dich richtig... Doppelklick auf den Titel "Plst ID" oder "Arbeitsrate" lädt das Userform mit den Werten des ersten gefundenen Datensatzes also immer aus Zeile 2?

Gruss
Chris

Re: Userform
12.05.2003 13:40:46
Johann

Danke für die rasche Antwort.Nein es kann eine beliebige Zeile in einem Tabellblatt sein .....manchmal über 6000 Zeilen jedoch der Spaltenaufbau ist immer gleich.

Re: Userform
12.05.2003 13:52:06
ChrisL

Hallo Johann

Versuchs mal hiermit:

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Column = 4 Or Target.Column = 5 Then
Load UserForm1

UserForm1.TextBox1 = Cells(Target.Row, 1)
UserForm1.TextBox2 = Cells(Target.Row, 2)
UserForm1.TextBox3 = Cells(Target.Row, 3)
UserForm1.TextBox4 = Cells(Target.Row, 4)
UserForm1.TextBox5 = Cells(Target.Row, 5)
UserForm1.TextBox6 = Cells(Target.Row, 6)

UserForm1.Show
End If
End Sub


Gruss
Chris

Anzeige
Re: Danke
12.05.2003 13:59:02
Johann

schönen Dank werde es gleich probieren....jedoch habe vergessen zu sagen, dass ich den Wert bei DoubleClick z.B "Plst - ID" exakt
die Werte aus dieser Zeile anzeigen möchte.

d.h. wenn ich "5640000" doppelclicke soll in der Userform der Datensatz stehen (4600 312 Linz 5640000 Personal 2cf3)

Okay bis gleich und *Smile*

Spitze
12.05.2003 14:16:45
Johann

herzlichen Dank es funktioniert.Möchte mich noch intensiver beschäftigen und wenn ich darf melde ich mich nochmal.

Danke für die Hilfe Herr Chris.

mfg

Johann



Noch etwas bitte
13.05.2003 10:29:12
Johann

Hallo Chris

Kann ich mich für die Hilfe erkenntlich zeigen ?

Vielleicht ein Problem noch ....


Mit Doppelclick auf Plst - ID funktioniert die Userform einwandfrei.

Habe jetzt noch das Problem, das ich aus einer zweiten Tabelle ebenfalls 3 Felder holen muss.

"Plst - ID" wäre sozusagen der Schlüssel und daneben in der Spalte stehen noch zwei Werte ...

"FN" und "Anmerkung" würde das gerne in der gleichen User Form anzeigen...also syncron aber
es ist nicht immer ein Wert in Tabelle zwei vorhanden.....dann soll er nichts anzeigen nur die Werte aus Tabelle 1.


Anbei der bisherige Codeteil.....

USERFORM:
Private Sub CommandButton1_Click()

'On Error Resume Next

'eins nach unten rutschen
ActiveCell.Offset(1, 0).Activate

'daten aktualisieren
Detail.Bzlnrtxt = Cells(ActiveCell.Row, 3)
Detail.Gesttxt = Cells(ActiveCell.Row, 4)
Detail.PlstIDtxt = Cells(ActiveCell.Row, 5)
Detail.Texttxt = Cells(ActiveCell.Row, 6)
Detail.Arbeitsratetxt = Cells(ActiveCell.Row, 7)
Detail.lfdNrtxt = Cells(ActiveCell.Row, 8)
Detail.FNJNtxt = Cells(ActiveCell.Row, 9)
Detail.Plstseittxt = Cells(ActiveCell.Row, 10)
Detail.Plstfreiseittxt = Cells(ActiveCell.Row, 11)
Detail.PlstOnrtxt = Cells(ActiveCell.Row, 12)
Detail.Mavorfreiwtxt = Cells(ActiveCell.Row, 14)

End Sub

Private Sub sss_Click()

End Sub

Private Sub cmdDOWN_Click()

'eins nach unten rutschen
ActiveCell.Offset(1, 0).Activate

'daten aktualisieren
Detail.Bzlnrtxt = Cells(ActiveCell.Row, 3)
Detail.Gesttxt = Cells(ActiveCell.Row, 4)
Detail.PlstIDtxt = Cells(ActiveCell.Row, 5)
Detail.Texttxt = Cells(ActiveCell.Row, 6)
Detail.Arbeitsratetxt = Cells(ActiveCell.Row, 7)
Detail.lfdNrtxt = Cells(ActiveCell.Row, 8)
Detail.FNJNtxt = Cells(ActiveCell.Row, 9)
Detail.Plstseittxt = Cells(ActiveCell.Row, 10)
Detail.Plstfreiseittxt = Cells(ActiveCell.Row, 11)
Detail.PlstOnrtxt = Cells(ActiveCell.Row, 12)
Detail.Mavorfreiwtxt = Cells(ActiveCell.Row, 14)

End Sub

Private Sub cmdUP_Click()

'eins nach oben rutschen
ActiveCell.Offset(-1, 0).Activate

'daten aktualisieren
Detail.Bzlnrtxt = Cells(ActiveCell.Row, 3)
Detail.Gesttxt = Cells(ActiveCell.Row, 4)
Detail.PlstIDtxt = Cells(ActiveCell.Row, 5)
Detail.Texttxt = Cells(ActiveCell.Row, 6)
Detail.Arbeitsratetxt = Cells(ActiveCell.Row, 7)
Detail.lfdNrtxt = Cells(ActiveCell.Row, 8)
Detail.FNJNtxt = Cells(ActiveCell.Row, 9)
Detail.Plstseittxt = Cells(ActiveCell.Row, 10)
Detail.Plstfreiseittxt = Cells(ActiveCell.Row, 11)
Detail.PlstOnrtxt = Cells(ActiveCell.Row, 12)
Detail.Mavorfreiwtxt = Cells(ActiveCell.Row, 14)
End Sub

jetzt von Tabelle:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Column = 5 Or Target.Column = 6 Then
Load Detail

Detail.Bzlnrtxt = Cells(Target.Row, 3)
Detail.Gesttxt = Cells(Target.Row, 4)
Detail.PlstIDtxt = Cells(Target.Row, 5)
Detail.Texttxt = Cells(Target.Row, 6)
Detail.Arbeitsratetxt = Cells(Target.Row, 7)
Detail.lfdNrtxt = Cells(Target.Row, 8)
Detail.FNJNtxt = Cells(Target.Row, 9)
Detail.Plstseittxt = Cells(Target.Row, 10)
Detail.Plstfreiseittxt = Cells(Target.Row, 11)
Detail.PlstOnrtxt = Cells(Target.Row, 12)
Detail.Mavorfreiwtxt = Cells(Target.Row, 14)
'Detail.lfdNrtxt = Cells(Target.Row, 14)
'Detail.lfdNrtxt = Cells(Target.Row, 15)
'Detail.lfdNrtxt = Cells(Target.Row, 16)
'Detail.lfdNrtxt = Cells(Target.Row, 17)
'Detail.lfdNrtxt = Cells(Target.Row, 18)
'Detail.lfdNrtxt = Cells(Target.Row, 19)
'Detail.lfdNrtxt = Cells(Target.Row, 20)
'Detail.lfdNrtxt = Cells(Target.Row, 21)
'Detail.lfdNrtxt = Cells(Target.Row, 22)
'Detail.lfdNrtxt = Cells(Target.Row, 23)

Detail.Show
End If
End Sub


Tabelle 1 heisst Unbesetzte Planstellen
Tabelle 2 heisst Fußnotenliste

Tabelle 1: Spaltenaufbau


"Pst-ID"

950000
960000
970000


Tabelle 2:

"Plst-ID" "FN" "Anmerkung"
950000 AB Test

970000 FE Test2


Die Felder von Tabelle 2 sollen in Userform von Tabelle1 eingebunden werden, jedoch es muss nicht immer der Schlüssel "Plst-ID" vorhanden sein........wenn nicht vorhanden nur Daten aus User Form aus Tabelle 1 anzeigen.

Danke

mfg

Johann

Anzeige
Re: Noch etwas bitte
13.05.2003 11:00:24
ChrisL

Hallo Johann

Stimme denn die Zeilennummern der Tabelle1 mit der Tabelle2 überein?

Falls ja,

TextBox1 = Worksheets("Tabelle2").Cells(Target.Row, 3)
etc.

Ansonsten müsste man eine Suchfunktion einfügen, was allerdings je nach Anzahl Einträgen die Performance negativ beeinflussen kann. Beispiele dazu gibt es in der Recherche (sFind = Cells(Target.Row, 5)).

Gruss
Chris

nein stimmen nicht überein
13.05.2003 11:03:49
Johann

habe es mit suchfunktion schon probiert ..geht grundsätzlich...nur verstehe ich die logik noch nicht wie ich die daten in userform 1 einlese....

d.h. die "Plst-ID" ist der Schlüssel für die betreffende Zeile danach suche ich auch jedoch nur der spaltenaufbau ist konstant....die zeile nicht.....

ps:nochmal und wie kann ich danke sagen ?

Anzeige
Suchen
13.05.2003 11:11:18
Johann

Ursprüngliche Version mit Doppelclick suchen aus einer anderen Arbeitsmappe.....jedoch wie gehts mit Userform....puhhh und dann frage ich sicher nichts mehr *smile*


Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Dim curCell As String, find As String, ptdSheet As String


find = ActiveCell


'Sheets("Liste FK").Select
Range("F21").Select
Sheets(Array("Tabelle2", "Liste FK")).Select
'Sheets("Liste FK").Activate

Cells.find(What:=find, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Sheets("Tabelle2").Select
Cells.FindNext(After:=ActiveCell).Activate
End Sub

Anzeige
Re: Suchen
13.05.2003 11:59:59
ChrisL

Hallo Johann

Hier ein bischen ein anderer Ansatz.


Die Spalten musst du noch anpassen.

If Zelle = Cells(Target.Row, 5) Then
kannst du auch ändern z.B. Zelle = IDNummer etc.

Gruss
Chris


*gg*
13.05.2003 12:02:51
JOhann

der andere Ansatz ist wesentlich besser ....du bist ein höflicher Mensch....danke ......

freu funktioniert super !!!!
13.05.2003 14:21:04
Johann

hier der leicht abgeänderte Code ...verstehe nicht wirklich alles aber es passt.

das einzige was noch nicht funktioniert ist im user form wenn ich den botton down drücke findet er das objekt nicht muss es aktualisieren ....aber das suche ich mir selber .....sonst werd ich faul.....d.h.es kommt zu keinem weiteren doppelclick und das muss ich umgehen....

danke...nochmals....

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Column = 5 Or Target.Column = 6 Then
'test1 finden FN

With Worksheets("Fußnoten Liste")
For Each PlstID In .Range("A1:A" & .Range("A65536").End(xlUp).Row)

If PlstID = Cells(Target.Row, 5) Then
'TextBox1 = Cells(Zelle.Row, 1)
FN = Cells(PlstID.Row, 2)

Exit For
End If

Next PlstID

End With

End If

'End Sub

Load Detail

Detail.Bzlnrtxt = Cells(Target.Row, 3)
Detail.Gesttxt = Cells(Target.Row, 4)
Detail.PlstIDtxt = Cells(Target.Row, 5)
Detail.Texttxt = Cells(Target.Row, 6)
Detail.Arbeitsratetxt = Cells(Target.Row, 7)
Detail.lfdNrtxt = Cells(Target.Row, 8)
Detail.FNJNtxt = Cells(Target.Row, 9)
Detail.Plstseittxt = Cells(Target.Row, 10)
Detail.Plstfreiseittxt = Cells(Target.Row, 11)
Detail.PlstOnrtxt = Cells(Target.Row, 12)
Detail.Mavorfreiwtxt = Cells(Target.Row, 14)
'Detail.FN = Cells(Target.Row, 2)
Detail.FN = Worksheets("Fußnoten Liste").Cells(Target.Row, 2)
'Detail.lfdNrtxt = Cells(Target.Row, 15)
'Detail.lfdNrtxt = Cells(Target.Row, 16)
'Detail.lfdNrtxt = Cells(Target.Row, 17)
'Detail.lfdNrtxt = Cells(Target.Row, 18)
'Detail.lfdNrtxt = Cells(Target.Row, 19)
'Detail.lfdNrtxt = Cells(Target.Row, 20)
'Detail.lfdNrtxt = Cells(Target.Row, 21)
'Detail.lfdNrtxt = Cells(Target.Row, 22)
'Detail.lfdNrtxt = Cells(Target.Row, 23)

With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
End With


Detail.Show
'End If
End Sub

Anzeige
Re: freu funktioniert super !!!!
13.05.2003 14:57:39
ChrisL

alles klar... viel Spass noch

Gruss
Chris

Noch was
16.05.2003 09:24:46
Johann

Hallo Chris

Gestatte noch eine Frage. Konzeption!! das ich mich nicht sinnlos verzettle.

Habe eine Arbeitsmappe mit zwei bis drei Tabellen. (Bei der du geholfen hast!!)

UserForm ist in Tabelle 1 und bei Doppelclick wird aus Tabelle zwei und drei eingelesen.

Zusätzlich drucke ich derzeit noch die Userform aus.

Meine Frage nun.
Auch wenn Excel keine Werkzeug ist für Detail - Reporting im Sinne von Access - Berichten suche ich
als Ausweg, die Möglichkeit über eine Userform einen halbwegs vernünftigen Detailbericht (Druckreport) zu
gestalten.

Je Druckseite ca.4 Userform und dann neue Seite.

Das ganze sollte so laufen, das ich über einen Commandbutton den Job starte und das System arbeitet
Datensatz für Datensatz ab bis alles ausgedruckt ist.

Oder sollte ich mich doch auf eine Excel - Access Verbindung einlassen mit dem Risiko bei ca. 300 User
das es zu Problemen mit der Software kommt. Heterogene Systemlandschaft ....Office 2000,XP,usw...nt,2002er,xp....

mfg

Johann


PS:oder hast du Infos wo ich vernünftige Beispiele nachsehen kann ....


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige