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

Suchen nach Wert aus Textfeld / öffnen von Links

Suchen nach Wert aus Textfeld / öffnen von Links
05.09.2017 10:59:45
Links
Hallo zusammen
Ich bin was VBA angeht noch ein absoluter Neuling und benötige Hilfe bei einem Problem.
Zur Ausgangslage:
Ich möchte in unserer Firma ein System einführen mit dem man mit Hilfe eines Barcodescanners und einer Excel-Datenbank Hyperlinks öffnen kann. Das Lesen des Barecodes mit Hilfe eines UserForm / Textfelds und das öffnen der Hyperlinks im IE funktioniert bereits.
Private Sub TextBox1_Change()
Worksheets("Sheet1").Range("A1").Value = Me.TextBox1
If TextBox1.Value = "5036101" Then
Set wshshell = CreateObject("WScript.Shell")
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate2 "http://www.google.com"
While objIE.ReadyState 

Zu meiner Frage: Ich möchte den Wert welcher vom Barcodeleser gelesen wird in eine Zelle schreiben (bereits implementiert). Im Anschluss soll das Excel-Sheet nach besagter Nummer durchsucht werden. Wird die eingelesene Nummer gefunden sollen Hyperlinks welche in bestimmten Zellen abgelegt wurden geöffnet werden.
In meinem Code werden die Links nur geöffnet wenn der eingelesene Barcode einem definierten Wert (5036101) entspricht. Ich möchte aber wie oben beschrieben, dass das Worksheet nach dem eingelesenen Wert durchsucht wird.
Danke für eure Hilfe.
Gruss

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen nach Wert aus Textfeld / öffnen von Links
05.09.2017 11:48:33
Links
Hi Manuel
Wenn du eine Liste mit Nummern (Spalte A) und Hyperlinks (Spalte B) hast, dann kannst du den Link z.B. nach B1 mittels SVERWEIS holen.
=SVERWEIS(A1;Tabelle2!A:B;2)
Dann den Link aus B1 holen z.B.
ThisWorkbook.FollowHyperlink Address:=Worksheets("Sheet1").Range("B1")
cu
Chris
AW:
06.09.2017 09:19:52
Manuel
Habe den Code noch einmal grundlegend überarbeitet.
[CODE]

Private Sub TextBox1_Change()
If Len(TextBox1.Text) > 7 Then
TextBox1.Text = Left(TextBox1.Text, 7)
End If
Worksheets("Sheet1").Range("G4").Value = Me.TextBox1
End Sub

Private Sub CommandButton1_Click()
ThisWorkbook.FollowHyperlink Address:=Worksheets("Sheet1").Range("I7")
ThisWorkbook.FollowHyperlink Address:=Worksheets("Sheet1").Range("I8")
TextBox1.Text = ""
End Sub
[/CODE]
Arbeite jetzt mit SVERWEIS um bei einer Eingabe/Scan des Barcodes die Hyperlinks in eine Zelle zu schreiben, welche dann über FollowHyperlink aufgerufen werden. Soweit so gut.
Jetzt habe ich folgendes Problem:
1. Je nach gescanntem Barcode sollen unterschiedlich viele Hyperlinks geöffnet werden. Aktuell verweise ich mit FollowHyperlink auf spezifische Zellen. Befindet sich in einer Zelle auf welche ich verwiese kein Hyperlink bekomme ich eine Fehlermeldung. Gibt es eine Möglichkeit einen Bereich zu definieren in dem nach Hyperlinks gesucht wird? Oder eine Funktion welche einen Hyperlink öffnet, zur nächsten Zeile springt, wieder den Hyperlink öffnet etc bis eine Zelle keinen Hyperlink mehr enthält?
2. Aktuell muss ich die Eingabe des Barcodes mit einem Button bestätigen, da er sonst schon nach der Eingabe des ersten Buchstabens/Zahl das Programm ausführt. Gibt es eine Möglichkeit, dass das Programm wartet bis in der TextBox eine vollständige Eingabe durchgeführt wurde. Also beispielsweise auf die Eingabe eines 6-Stelligen Textes wartet und nach der Eingabe des letzten Buchstabens den nächsten Programmschritt ausführt.
Danke
Anzeige
AW: AW:
06.09.2017 09:49:35
ChrisL
Hi
Probiere mal so...
Private Sub TextBox1_Change()
With TextBox1
If .Tag = "gesperrt" Then Exit Sub
If Len(.Text) > 7 Then
.Tag = "gesperrt"
.Text = Left(.Text, 7)
.Tag = ""
End If
End With
With Worksheets("Sheet1")
If WorksheetFunction.CountIf(.Columns(1), TextBox1) > 0 Then
Dim lZ As Long
lZ = Application.Match(TextBox1, .Columns(1), 0)
If .Cells(lZ, 2)  "" Then _
ThisWorkbook.FollowHyperlink Address:=.Cells(lZ, 2).Hyperlinks(1).Address
If .Cells(lZ, 3)  "" Then _
ThisWorkbook.FollowHyperlink Address:=.Cells(lZ, 3).Hyperlinks(1).Address
If .Cells(lZ, 4)  "" Then _
ThisWorkbook.FollowHyperlink Address:=.Cells(lZ, 4).Hyperlinks(1).Address
.Range("G4").Value = Me.TextBox1
TextBox1.Tag = "gesperrt"
TextBox1.Text = ""
TextBox1.Tag = ""
End If
End With
End Sub

cu
Chris
Anzeige
AW: AW: AW
07.09.2017 10:32:23
Manuel
Danke für die Antwort. Der Code funktioniert prinzipiell recht gut. Aktuell habe ich jedoch das Problem, dass die die ersten zwei aufgerufenen Links nicht mit denen in der Tabelle übereinstimmen. Komischerweise nur bei der Zeile 3 und 4. Bin ehrlich gesagt ein wenig überfragt warum dies so ist.
Aktuelle Version
https://www.herber.de/bbs/user/116068.xlsm
AW: AW: AW:AW
07.09.2017 11:26:51
ChrisL
Hi Manuela
In den betroffenen Zellen ist irgendwie noch ein alter Hyperlink drin.
Folgendes ergibt Wiki, obwohl der Link zu Google führt:
Sub t()
MsgBox Range("B3").Hyperlinks(1).Address
End Sub
Erst der zweite Link ist korrekt Google.
Sub t()
MsgBox Range("B3").Hyperlinks(2).Address
End Sub

Entweder löschst du die Links und erstellst neu. Oder du änderst und nimmst anstelle des Links den Zellen-Text (der aber nicht zwingend mit dem Link übereinstimmen muss).
If .Cells(lZ, 2) "" Then ThisWorkbook.FollowHyperlink Address:=.Cells(lZ, 2)
Die Hilfszellen in Spalten I:L brauchst du übrigens nicht mehr.
cu
Chris
Anzeige
AW: AW: AW: AW: AW
08.09.2017 10:24:09
Manuel
Vielen Dank für deine Hilfe. Das Programm läuft nun wie gewünscht. Jedoch habe ich eine neues Problem. Wenn ich die Hyperlinks aufrufe erscheint eine Warnmeldung bezgl. Viren und nicht vertrauenswürdigen Quellen etc. Hier muss mit "OK" bestätigt werden, dass der Link geöffnet wird.
Gibt es eine Möglichkeit diese Meldungen zu unterdrücken? Ich habe bereits den Befehl
Application.DisplayAlerts = False verwendet, jedoch ohne Erfolg.
Liegt dies daran dass die Meldung nicht vom Excel generiert wird, sondern von einem anderen Prozess?
Danke
AW: AW: AW: AW: AW
08.09.2017 10:59:40
ChrisL
Hi Manuela
Da müsstest du mal im Netz recherchieren. Es wird sich um eine Sicherheitseinstellung handeln, welche nur geändert werden kann, wenn du die Sicherheitseinstellung reduzierst. Mit DisplayAlerts o.ä. wird es nicht gehen, weil so die Sicherheit einfach ausgehebelt werden könnte. Evtl. könnte noch ein Sicherheits-Zertifikat helfen, aber auch da müsstest du dich einlesen.
cu
Chris
Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige