Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Liste | Herbers Excel-Forum


Betrifft: Liste von: Franz
Geschrieben am: 25.10.2008 18:56:33

Hallo Zusammen

Ich habe mir eine liste mit Suchfunktion zusammen gebastelt
Ich mochte in dehn vorhandenen Registern bestimmte Einträge mit Verweisen (Hyperlinks) versehen.
Die Verweise sollten auch in Suchfeld erscheine.
Kann sich das mal jemand Ahnsehen??

https://www.herber.de/bbs/user/56268.zip

Danche.

  

Betrifft: AW: Liste von: Cathy
Geschrieben am: 25.10.2008 20:18:07

Hallo Franz,

nicht besonders elegant, aber vielleicht hilft es für den Anfang:

dim strHyperlink as string
...
...
...

 strHyperlink = "'" & Sheets(i).Name & "'!" & Sheets(i).Cells(intErgebnis.Row, 2).Address( _
rowabsolute:=False, columnabsolute:=False)
            Worksheets("Detailsuche").Hyperlinks.Add Anchor:=Cells(intgef, 3), _
            Address:="", SubAddress:=strHyperlink
            Cells(intgef, 3) = Sheets(i).Cells(intErgebnis.Row, 2).Value



Freundliche Grüße
Cathy


  

Betrifft: AW: Liste von: Daniel
Geschrieben am: 25.10.2008 20:33:14

Hi

nur mal so als Info:

deine Excelversion kann pro Arbeitsblatt 65536 Zeilen verarbeiten.
es ist daher nicht notwendig, für jede 50 Zeilen ein neues Blatt anzulegen.

wenn du alle Daten in einer Liste hast, dann kannst du deine Suchfunktion eventuell ganz einfach über den Autofilter lösen und brauchst kein aufwendiges Makro zu schreiben.

Gruß, Daniel


  

Betrifft: AW: Liste von: Franz
Geschrieben am: 25.10.2008 20:38:13

Danke Daniel

Ich weis aber das hatt alles seine Gründe
Ich habe aber immer noch das Problem mit dehn Hyperlinks...

Gruß


  

Betrifft: AW: Liste von: rofu
Geschrieben am: 25.10.2008 20:57:05

hallo franz,

musste wg.gateigrösse blätter entfernen aber zum testen genüt ja ein blatt.

ausserdem solltest du den vorschlag von daniel annehmen!!!

hoffentlich klappt's

gruß
rofu

https://www.herber.de/bbs/user/56271.xls


  

Betrifft: AW: Liste von: rofu
Geschrieben am: 25.10.2008 21:02:54

hallo daniel,

kannst du dir vorstellen, warum franz nicht auf deinen vorschlag eingeht?

ich jedenfalls bin deiner meinung.

gruß

robert


  

Betrifft: AW: Liste von: Franz
Geschrieben am: 25.10.2008 21:09:06

Danke Rofu

danke für deine Mühe
ok ich verwende nur einen Register aber es geht nicht
der Verweis in meinen Eintrag bezieht sich auf einen Ordner.
und die ausgabe ist immer der Verwies auf dehn Register selbst.
Mist ich gebe bald auf.
Grus Franz


  

Betrifft: AW: Liste von: rofu
Geschrieben am: 25.10.2008 21:14:35

hallo franz,

aufgeben geht nicht !!!

frage: ist das makro in deiner originaldatei anders als in der datei die du hochgeladen hast?

die von mir geschickte date funktioniert bei mir.

bitte um sendung der zeile im makro, wo der fehler auftritt.

lG
rofu


  

Betrifft: AW: Liste von: rofu
Geschrieben am: 25.10.2008 21:15:29

hallo daniel,

kannst du dir vorstellen, warum franz nicht auf deinen vorschlag eingeht?

ich jedenfalls bin deiner meinung.

gruß

robert


  

Betrifft: AW: Liste von: Franz
Geschrieben am: 25.10.2008 22:37:52

Hallo

Hir ist sie mochmal

https://www.herber.de/bbs/user/56275.xls

Gruß Franz


  

Betrifft: AW: Liste von: Daniel
Geschrieben am: 26.10.2008 02:27:56

Hi
und wo ist das Problem?
das Suchmakro ist zwar etwas umständlich geschrieben, aber funktioniert doch.
Gruß, Daniel


  

Betrifft: AW: Liste von: rofu
Geschrieben am: 26.10.2008 07:00:24

Hallo franz,

bei Daniel und bei mir funktioniert es.

Was soll daher bei Dir nicht gehen?

Bitte um klare Antwort bzw.FEHLERMELDUNG und Textzeile wo der Fehler angezeigt wird.

LG
rofu


  

Betrifft: Laufzeitfehler 1004, bei Select von: Tino
Geschrieben am: 26.10.2008 07:15:57

Hallo,
ohne zu testen ob diese Zeile überhaupt erforderlich ist.

'Cells(intgef, 3) > diese Zeile löst den Laufzeitfehler 1004 aus! 
'ändere diese in. 
ActiveSheet.Cells(intgef, 3).Select




Gruß Tino


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Franz
Geschrieben am: 26.10.2008 10:04:11

Hallo Tino Rofu Daniel

Danke für die Mühe
Es tretet kein Fehler auf, es ist nur so wen ich in die Tabelle Daten eintrage und diese mit irgend welchen Ordnern verlinke werden die in die such Tabelle nicht eingetragen.
In den such Ergebnis ist alles gefunden aber die links verweisen alle nur auf den Register CD Liste 1-50 und nicht auf die Verweise die in der Tabelle angegeben sind

Gruß Franz


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Tino
Geschrieben am: 26.10.2008 10:40:03

Hallo,
nicht getestet.
Mach aus den Zeilen

strhyperlink = "'" & Sheets(i).Name & "'!" & Sheets(i).Cells(intErgebnis.Row, 2).Address( _
rowabsolute:=False, columnabsolute:=False)
Cells(intgef, 3).Select
 Worksheets("Detailsuche").Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=strhyperlink



diese

strhyperlink = Sheets(i).Cells(intErgebnis.Row, 2).Hyperlinks(1).Address

ActiveSheet.Cells(intgef, 3).Select
 Worksheets("Detailsuche").Hyperlinks.Add Anchor:=Selection, Address:=strhyperlink, SubAddress:=""




PS: bei mir wird ein Laufzeitfehler ausgelöst, wahrscheinlich weil die Zellen den Fokus nicht mehr haben. Vielleicht wegen der Steuerelemente.

Gruß Tino


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Franz
Geschrieben am: 26.10.2008 11:28:21

Hallo Tino

Danke das mit dehn Links geht supper
Jetzt habe ich ein neues Problem
Wen ich weitere Daten eintrage und dann auf suchen gehe kommt der Fehler: Index außerhalb des gültigen Bereichs.

Gruß Franz


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: rofu
Geschrieben am: 26.10.2008 12:12:27

Es treten keine Fehler auf, es ist nur so wenn ich in die Tabelle Daten eintrage und diese mit irgend welchen Ordnern verlinke werden die in die such Tabelle nicht eingetragen.
In den such Ergebnis ist alles gefunden aber die links verweisen alle nur auf den Register CD Liste 1-50 und nicht auf die Verweise die in der Tabelle angegeben sind

Hi Franz,

ich kann mit diesem Satz nichts anfangen - was heisst mit irgendwelchen Ordener verlinke??????????

Davon ist in Deiner Tabell nichts zu sehen.

Erklärung??

Gruß
rofu


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Franz
Geschrieben am: 26.10.2008 12:26:59

Hallo Rofu

Ich habe an diesen test 7 Datensätze eingetragen 4 haben verschiedene verweise Hyperlink 3 nicht
Im Suchergebnis werden alle gefunden aber alle 7 haben dehn verweis auf dehn Register CD liste 1-50

https://www.herber.de/bbs/user/56285.xls

Gruß Franz


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Tino
Geschrieben am: 26.10.2008 13:25:05

Hallo,
vielleicht so?

https://www.herber.de/bbs/user/56289.xls

Gruß Tino


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: Franz
Geschrieben am: 26.10.2008 13:38:59

Hallo Tino

Bist spitze genau so habe ich mir das vorgestellt.
Nochmals danke
Jetzt muss ich noch eine Eingabemaske bauen.

Gruß Franz


  

Betrifft: AW: Laufzeitfehler 1004, bei Select von: rofu
Geschrieben am: 26.10.2008 13:46:35

hallo franz,

entweder bin ich blin oder sonst was.

ich sehe in meiner datei keinen unterschied zu tinos datei.

beide liefrn das gleiche ergebnis.

ok-hauptsache du bist zufrieden.

gruß
rofu


  

Betrifft: AW: mit Copy-Paste geht doch viel einfacher von: Daniel
Geschrieben am: 26.10.2008 13:46:40

Hi

das Problem mit den Hyperlinks lässt sich relativ einfach lösen, wenn du die Daten per COPY überträgst, dann werden die Hyperlinks einfach mitübertragen und du musst sich um nichts weiter mehr kümmern.

das Makro dazu sieht so aus:

Sub Instrsuche()
 
Dim Spalte As Long
Dim sh As Worksheet
Dim Zeile As Long
With Sheets("Detailsuche")
    .Range("B20").CurrentRegion.Offset(1, 0).ClearContents
    Spalte = .Range("i9").Value
    For Each sh In ThisWorkbook.Sheets
        If sh.Name Like "CD*" Then
            For Zeile = 6 To sh.Cells(Rows.Count, 1).End(xlUp).Row
                If sh.Cells(Zeile, Spalte).Value = .Range("B9").Value Then
                    sh.Cells(Zeile, 1).Resize(1, 7).Copy _
                        Destination:=.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
                End If
            Next
        End If
    Next
    .Range("B21:H40").Interior.ColorIndex = -4142
End With

End Sub



allerdings müssen dazu die Spaltenfolgen in den Tabellen gleich sein - der Versatz von A nach B macht nichts, aber die zusätzlichen Spalten D,E,I,H in der Tabelle Detailsuche musst du löschen, ebenso dürfen keine verbundenen Zellen vorkommen.
aber beides kannst du umsetzen, ohne die Optik oder die Funktionsweise der Tabelle zu verändern.
dafür lässt sich der Code wesentlich einfacher gestalten.
https://www.herber.de/bbs/user/56290.xls

Gruß, Daniel


  

Betrifft: AW: mit Copy-Paste geht doch viel einfacher von: Franz
Geschrieben am: 26.10.2008 15:26:13

Hallo zusammen

Ich hoffe ihr habt noch ein bisschen Geduld mit mir ….muss noch fiel lernen…
Es geht so wie ich mir das gedacht habe
Hier habe ich aber noch ein Problem zu lösen.
Wie kann ich die Eingabemaske aus den Register Detailsuche starte das sich die Daten aber in dehn Register CD Liste 1-50 eintragen
Wen möglich das eintragen mit Passwort abfrage so das nicht jeder die Daten ändern kann

https://www.herber.de/bbs/user/56296.xls

Gruß Franz


  

Betrifft: AW: mit Copy-Paste geht doch viel einfacher von: Daniel
Geschrieben am: 26.10.2008 17:58:19

Hi

wenn du die Datenmaske vom Register "Detailsuche" aus starten willst, dann brauchst du nur folgende Programmzeile der Userform zu ändern(die Änderung ist fett):

Set meZelle = Sheets("CD Liste 1-50").Cells(Rows.Count, 2).End(xlUp).Offset(1, -1)



um die Eingabe per Password abzusichern würde ich folgendermassen vorgehen:

1. in den Eigenschaften für den Button "Eintragen" die Eigenschaft ENABELD auf FALSE setzen, damit kann der Button nicht mehr angeklickt werden.

2. in die Userform eine neue Textbox einfügen für die Passwordeingabe.
der Textbox wird folgender Code zugewiesen (Password und Textboxnamen ggf anpassen):

Private Sub TextBox8_Change()
CommandButton1.Enabled = TextBox8.Value = "DeinPassword"
End Sub


der Code bewirkt, daß der Button "Eintragen" aktiviert wird, sobald das korrekte Password eigegeben wurde.
um das Password zu verbergen, kannst du ein entsprechendes Zeichen bei der Eigenschaft PASSWORDCHAR vergeben.

Gruß, Daniel
PS eigentlich wäre für diese Frage ja auch ein neuer Tread passend, da das mit der eigentlichen Frage ja nichts mehr zu tun hat.