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 Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Wert in geschlossener Datei suchen | Herbers Excel-Forum


Betrifft: Wert in geschlossener Datei suchen von: abu
Geschrieben am: 21.12.2009 12:41:55

Hallo Zusammen,

Habe eine Userfrom mit einer Textbox1 mit dem Beispielwert: 555. Dieser Wert soll in der geschlossen Datei Test.xls in Spalte F gesucht werden und beim ersten Treffer soll mir aus der selben Zeile der Wert aus Spalte A an Textbox2 uebergeben werden und der Wert aus Spalte B in Textbox3.

Kann man das Umsetzen, da die Datei geschlossen ist?

Wuerde mich ueber Hilfe sehr freuen.

Gruss
abu

  

Betrifft: AW: Wert in geschlossener Datei suchen von: Hajo_Zi
Geschrieben am: 21.12.2009 12:49:10

Hallo Abu,

lass es sein. Ich vermute Du mußt den gesamten Bereich in Deine Datei übernehmen und dann prüfen. Da lohnt der Aufwand nicht. Da ist öffnen einfacher.

GrußformelHomepage


  

Betrifft: AW: Wert in geschlossener Datei suchen von: abu
Geschrieben am: 21.12.2009 13:06:35

Hallo Hajo,

danke auch aber so leicht will ich es mir dann doch nicht machen.
Verstehe deine Vermutung nicht ganz, was meinst du mit: 'Ich vermute Du mußt den gesamten Bereich in Deine Datei übernehmen und dann prüfen.

Vllt. hab ich mich zu umstaendlich ausgedrueckt aber im Grunde brauch ich doch nur einen Sverweis der auch mit einer geschlossen Datei funktioniert

Gruss abu


  

Betrifft: AW: Wert in geschlossener Datei suchen von: Hajo_Zi
Geschrieben am: 21.12.2009 13:08:33

Hallo Abu,

dann trage die SVERWEIS() Formel doch per VBA in eine Zelle ein.

Gruß Hajo


  

Betrifft: AW: Wert in geschlossener Datei suchen von: Reinhard
Geschrieben am: 21.12.2009 12:52:50

Hallo Abu,

jetzt kannste in A suchen:

Sub tt()
Application.ScreenUpdating = False
Range("A1:A10000").Formula = "='C:\Test\[Test.xls]Tabelle1'!F1"
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard


  

Betrifft: AW: Wert in geschlossener Datei suchen von: abu
Geschrieben am: 21.12.2009 13:11:05

Hallo Reinhard,

auch Dir danke, verstehe ich aber leider nicht.

Gruss
abu


  

Betrifft: AW: Wert in geschlossener Datei suchen von: Daniel
Geschrieben am: 21.12.2009 13:06:02

Hi

ich würde das so umsetzen:
1. wenn es mehrere Daten sind, die ausgelesen werden müssen, dann
- Datei öffnen
- Wert auslesen
- Datei schließen
das ist meistens auch schneller als ein Zugriff auf eine geschlossene Datei.

2. bei einzelnen Daten würde ich:
- eine entsprechende Formel, die den gewünschten Wert über einen Externen Zellbezug liefert, in eine freie Zelle schreiben und dieses Formelergebnis in der Userform verwenden.

Gruß, Daniel


  

Betrifft: AW: Wert in geschlossener Datei suchen von: Tino
Geschrieben am: 21.12.2009 13:10:19

Hallo,
kannst es mal so versuchen.

Dialog UserForm1

Option Explicit 
 
Private Sub CommandButton1_Click() 
Dim strPfad$, strTabelle$, sSuchbereich$, sAusgabe$ 
 
'Datei Pfad 
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\") 
 
'Dateipfad und Dateiname ' davor und Dateiname in [...] 
strPfad = "'" & strPfad & "[Test.xls]" 
 
'Tabellename am ende mit '! 
strTabelle = "Tabelle1" & "'!" 
 
'Ausgabebereich 
sAusgabe = Range("A1:B65536").Address(ReferenceStyle:=xlR1C1) 
 
'Suchbereich 
sSuchbereich = Range("F1:F65536").Address(ReferenceStyle:=xlR1C1) 
 
On Error Resume Next 
'Wert für Textbox2 
TextBox2 = ExecuteExcel4Macro( _
"INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & TextBox1 & "," & strPfad & strTabelle & sSuchbereich & ",0),1)" _
) 
If Err.Number <> 0 Then TextBox2 = "" 
Err.Clear 
 
'Wert für Textbox3 
TextBox3 = ExecuteExcel4Macro( _
"INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & TextBox1 & "," & strPfad & strTabelle & sSuchbereich & ",0),2)" _
) 
If Err.Number <> 0 Then TextBox3 = "" 
On Error GoTo 0 
 
End Sub 
 
TypNameEigenschaften
CommandButtonCommandButton1
Caption:Suchen
Height:18
Left:144
TabIndex:4
Top:18
Width:66
LabelLabel1
Caption:Eingabe
Height:12
Left:6
TabIndex:3
Top:6
Width :48
TextBoxTextBox1
Height:18
Left:6
TabIndex:0
Text:
Top:18
Width:132
TextBoxTextBox2
Height:18
Left:6
Text:
Top:66
Width:132
TextBoxTextBox3
Height:18
Left:6
TabIndex:2
Text:
Top:102
Width:132



Gruß Tino


  

Betrifft: AW: Wert in geschlossener Datei suchen von: abu
Geschrieben am: 21.12.2009 13:39:10

Hallo Tino,

danke fuer den Code. Habe deinen Code eingefuegt. Was muss ich denn alles anpassen?

-Die geschlossen Datei: Tabelle in Tabelle1! umbenennen
-'Dateipfad und Dateiname ' davor und Dateiname in [...]
strPfad = "'H:\My Documents\TEST Complaints" & strPfad & "[Test.xls]"

Muss ich noch mehr anpassen, denn bei mir passiert nichts. Laeuft durch aber es wird nichts uebergeben.
Excel4Macro, muss ich das irgendwie noch freischalten oder sowas???

Gruss abu


  

Betrifft: AW: Wert in geschlossener Datei suchen von: Tino
Geschrieben am: 21.12.2009 13:44:53

Hallo,

strPfad = "'H:\My Documents\TEST Complaints\" & "[Test.xls]"

Hier mein Beispiel dazu, irgendwo auspacken.
https://www.herber.de/bbs/user/66741.zip


Gruß Tino


  

Betrifft: AW: Wert in geschlossener Datei suchen von: abu
Geschrieben am: 21.12.2009 14:03:24

Tino,

super genauso wollte ich es haben. Leider funktioniert das ganze nicht bei mir. Meine Datei heisst auch Test und das Tabellenblatt heisst Tabelle1. Hast Du eine idee wieso?

Gruss abu


  

Betrifft: nochmal Kommentare dazu von: Tino
Geschrieben am: 21.12.2009 14:16:06

Hallo,


'hier gibst Du dan Pfad zu der Datei an
'Bsp.: strPfad = "H:\My Documents\TEST Complaints\"
'am ende auf \ achten
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")

'hier musst Du eigentlich nichts machen
'Dateipfad und Dateiname ' davor und Dateiname in [...]
strPfad = "'" & strPfad & "[Test.xls]"

'hier Tabellennamen anpassen
'Tabellename am ende mit '!
strTabelle = "Tabelle1" & "'!"

'eigendlich nichts anpassen
sAusgabe = Range("A1:B65536").Address(ReferenceStyle:=xlR1C1)

'eigendlich nichts anpassen
sSuchbereich = Range("F1:F65536").Address(ReferenceStyle:=xlR1C1)

Gruß Tino


  

Betrifft: AW: nochmal Kommentare dazu von: abu
Geschrieben am: 21.12.2009 16:06:20

Tino,

noch mal vielen Dank fuer deine Unterstuetzung, echt super.

Gruss
abu


  

Betrifft: suche nicht nur nach Zahlen auch Text möglich von: Tino
Geschrieben am: 21.12.2009 13:40:10

Hallo,
wenn Du nach Kommazahlen suchen möchtest, muss das Komma durch einen Punkt ersetzt werden.
Möchtest Du nach Text Suchen, muss dieses durch weitere Anführungsstriche erweitert werden.

Private Sub CommandButton1_Click()
Dim strPfad$, strTabelle$, sSuchbereich$, sAusgabe$
Dim strSuchWert$

If TextBox1 <> "" Then
    strSuchWert = TextBox1
    
    If IsNumeric(strSuchWert) Then
     strSuchWert = Replace(strSuchWert, ",", ".")
    Else
     strSuchWert = Chr(34) & strSuchWert & Chr(34)
    End If
    
    
    'Datei Pfad 
    strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
    
    'Dateipfad und Dateiname ' davor und Dateiname in [...] 
    strPfad = "'" & strPfad & "[Test.xls]"
    
    'Tabellename am ende mit '! 
    strTabelle = "Tabelle1" & "'!"
    
    'Ausgabebereich 
    sAusgabe = Range("A1:B65536").Address(ReferenceStyle:=xlR1C1)
    
    'Suchbereich 
    sSuchbereich = Range("F1:F65536").Address(ReferenceStyle:=xlR1C1)
    
    On Error Resume Next
    'Wert für Textbox2 
    TextBox2 = ExecuteExcel4Macro( _
    "INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & strSuchWert & "," & strPfad & strTabelle & sSuchbereich & ",0),1)" _
    )
    If Err.Number <> 0 Then TextBox2 = ""
    Err.Clear
    
    'Wert für Textbox3 
    TextBox3 = ExecuteExcel4Macro( _
    "INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & strSuchWert & "," & strPfad & strTabelle & sSuchbereich & ",0),2)" _
    )
    If Err.Number <> 0 Then TextBox3 = ""
    On Error GoTo 0
Else
    TextBox2 = "": TextBox3 = ""
End If
End Sub
Gruß Tino


Beiträge aus den Excel-Beispielen zum Thema "Wert in geschlossener Datei suchen "