MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 13.01.2018, 17:32   #1
tomtom2718
MOF User
MOF User
Standard Excel 2013 - Suchfunktion

Guten Abend allerseits
Benötige wieder mal hilfe von profis.

Suchfunktion und einfügen der Daten aus listbox funktioniert nicht.
was mache ich falsch.

Beim klick auf Zeile Listbox;(Private Sub ListBox1_Click())

Fehler beim Kompiliern:
Varialble nicht definiert!

code userform
PHP-Code:

Option Explicit
Private Sub Image5_Click()

' suchen nach Suchbegriff in entsprechender Spalte und gibt Ergebnis in Listbox aus
Dim vntErg As Variant
Dim i As Byte
Dim blngefunden As Boolean



ListBox1.Clear
ListBox1.Visible = True
Label63.Visible = True


For i = 1 To 15
 If Len(Me.Controls("TextBox" & i)) Then
   If sucheDatensatz(Me.Controls("TextBox" & i).Value, i, vntErg) Then ListBox1.List = vntErg
   blngefunden = True
   Exit Sub
  End If
Next

If Not blngefunden Then UserForm2.Show
End Sub



Private Sub ListBox1_Click()
'
überträgt ausgewählten Datensatz in Textboxen
For 1 To 15

    Me
.Controls("TextBox" i) = ListBox1.List(ListBox1.ListIndexi)
Next
ListBox1
.Visible False

End Sub
Private Sub cmdändern_Click()
 
Datensätz ändern
    
   schreibeDaten Worksheets
("Matrix"), ListBox1.Value
    
Unload Me

End Sub 
code modul
PHP-Code:

Global zeile As Integer
Public schalter As Integer


Sub schreibeDaten
(ByVal sh As WorksheetByVal lrow As Long)

With sh

For 1 To 16
 
.Cells(lrowi) = UserForm1.Controls("Textbox" i)
Next
End With

End Sub

Function sucheDatensatz(ByVal strSuch As StringByVal Spalte As IntegervntOut As Variant) As Boolean
Dim c 
As Range
Dim firstaddress
Dim strErg 
As String
With Worksheets
("Matrix").Columns(Spalte)

    
Set c = .Find(what:=strSuchLookIn:=xlValueslookat:=xlWhole)
    
    If 
Not c Is Nothing Then
        firstaddress 
c.Address
            
Do
                
strErg strErg c.Row ","
                
                
Set c = .FindNext(c)
                
            
Loop While c.Address <> firstaddress
    
Else
        
MsgBox " Suchbegriff nicht gefunden"
    
End If
End With

ReDim vntOut
(0 To UBound(Split(",")), 0 To 16)
If 
Len(strErgThen
    sucheDatensatz 
True
    ReDim vntOut
(0 To UBound(Split(strErg",")), 0 To 16)
        For 
0 To UBound(Split(strErg",")) - 1
            
For 1 To 16
                vntOut
(ij) = Cells(Split(strErg",")(i), j)
            
Next
            vntOut
(i0) = Split(strErg",")(i)
        
Next
End 
If
End Function 
Bin für jede unterstützung Dankbar

Beste Grüsse
Toni
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2018, 17:33   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

Hallo Toni,

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2018, 19:32   #3
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Moin,

Zitat:

was mache ich falsch.

mit der Fehlermeldung sollte irgend eine Zeile markiert sein, in der die Variable benutzt wird.

__________________

Gruß
Ralf
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 00:50   #4
tomtom2718
Threadstarter Threadstarter
MOF User
MOF User
Standard Suchfunktion

Hallo zusammen

Fehler beim Kompiliern:
Varialble nicht definiert
Der Fehler wird in Zeile



For i = 1 To 15

im
Private Sub ListBox1_Click()
'überträgt ausgewählten Datensatz in Textboxen

angezeigt.

Kann im moment keine Beispieldatei hochladen.
muss mir noch das Winzip kaufen, Testversion ist abgelaufen.

Vielen Dank im Voraus.

Beste Grüsse
Toni
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 07:45   #5
aloys78
MOF Meister
MOF Meister
Standard

Hallo Toni,

Zitat:

For i = 1 To 15

Du hast in dieser Prozedur die Variable i nicht definiert, und da Du "Option explicit" angegeben hast, fällt dies dem Compiler auf.

Außerdem würde ich i als Long definieren.

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 07:53   #6
RPP63neu
MOF Meister
MOF Meister
Standard

Moin!
Da liegt noch einiges im Argen.

ReDim vntOut(0 To UBound(Split(",")), 0 To 16)

wird auch in einen Fehler laufen!

Zitat:

muss mir noch das Winzip kaufen, Testversion ist abgelaufen.

"Mein" Windows hat eine eingebaute Zip-Funktion.

Gruß Ralf

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 11:32   #7
tomtom2718
Threadstarter Threadstarter
MOF User
MOF User
Standard Suchfunktion

Guten Tag allerseits

Erstmal vielen Dank.

komme leider nicht weiter.
habe mal die abgespeckte datei beigelegt.
Ich hoffe ihr könnt mir weiterhelfen.

Besten Dank im Voraus
Grüsse
Toni
Angehängte Dateien
Dateityp: zip Spesentest 1301.zip (226,9 KB, 3x aufgerufen)
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 12:48   #8
tomtom2718
Threadstarter Threadstarter
MOF User
MOF User
Top Suchfunktion erledigt

Hat geklappt

ich habe i as long definiert und Option Explicit entfernt.
und im Modul die anzahl Textboxen angepasst.

Vielen herzlichen Dank für eure Unterstützung

Grüsse Toni
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 15:30   #9
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Zitat:

ich habe i as long definiert

gut.

Zitat:

und Option Explicit entfernt.

schlecht, weil man sich nach den Fehlern, die dadurch entstehen können, dumm und dämlich sucht. Nichts ist schlimmer als die Überzeugung, alles richtig gemacht zu haben.

__________________

Gruß
Ralf
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 22:11   #10
tomtom2718
Threadstarter Threadstarter
MOF User
MOF User
Verwirrt Suchfunktion

Hallo Ralf

Vielen Dank für die Rückmeldung.
Wie müsste ich dann Vorgehen um diesen Fehler korrkt zu korrigieren.
Besen Dank im Voraus.
Gruss Toni
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2018, 22:44   #11
Muller
MOF User
MOF User
Standard

Hallo,

na, wie Ralf schon schrieb, Du lässt einfach Option Explicit stehen, am Anfang immer mal dies hier durchlesen und verinnerlichen, dann bist schonmal auf dem richtigen Weg...

http://www.online-excel.de/excel/singsel_vba.php?f=4

Gruß, Muller
Muller ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.01.2018, 16:25   #12
tomtom2718
Threadstarter Threadstarter
MOF User
MOF User
Standard Suchfunktion

hallo Zusammen
@müller

Vielen Dank für den Link.
Blicke immer noch nicht ganz durch.

Habe, glaube ich zumindest, die Lösung gefunden.

PHP-Code:

Option Explicit
Private Sub Image5_Click()
' suchen nach Suchbegriff in entsprechender Spalte und gibt Ergebnis in Listbox aus
Dim vntErg As Variant
Dim i As Long
Dim blngefunden As Boolean



ListBox1.Clear
ListBox1.Visible = True
Label63.Visible = True
cmdändern.Visible = True


For i = 1 To 15
 If Len(Me.Controls("TextBox" & i)) Then
   If sucheDatensatz(Me.Controls("TextBox" & i).Value, i, vntErg) Then ListBox1.List = vntErg
   blngefunden = True
   Exit Sub
  End If
Next


If Not blngefunden Then UserForm2.Show
End Sub
Private Sub ListBox1_Click()
'
überträgt ausgewählten Datensatz in Textboxen
Dim i 
As Long
For 1 To 15

    Me
.Controls("TextBox" i) = ListBox1.List(ListBox1.ListIndexi)
Next
ListBox1
.Visible False
Image5
.Visible False
End SubPrivate Sub cmdändern_Click
()
 
Datensätz ändern
    
   schreibeDaten Worksheets
("Matrix"), ListBox1.Value
    
Unload Me

End Sub 
modul
PHP-Code:

Global zeile As Integer
Public schalter As Integer


Sub schreibeDaten
(ByVal sh As WorksheetByVal lrow As Long)

With sh

For 1 To 15
 
.Cells(lrowi) = UserForm1.Controls("Textbox" i)
Next
End With

End Sub

Function sucheDatensatz(ByVal strSuch As StringByVal Spalte As IntegervntOut As Variant) As Boolean
Dim c 
As Range
Dim firstaddress
Dim strErg 
As String

Worksheets
("Matrix").Activate 'aktiviere gewünschte Tabelle'


With Worksheets("Matrix").Columns(Spalte)

    
Set c = .Find(what:=strSuchLookIn:=xlValueslookat:=xlWhole)
    
    If 
Not c Is Nothing Then
        firstaddress 
c.Address
            
Do
                
strErg strErg c.Row ","
                
                
Set c = .FindNext(c)
                
            
Loop While c.Address <> firstaddress
    
Else
        
MsgBox " Suchbegriff nicht gefunden"
    
End If
End With

ReDim vntOut
(0 To UBound(Split(",")), 0 To 15)
If 
Len(strErgThen
    sucheDatensatz 
True
    ReDim vntOut
(0 To UBound(Split(strErg",")), 0 To 15)
        For 
0 To UBound(Split(strErg",")) - 1
            
For 1 To 15
                vntOut
(ij) = Cells(Split(strErg",")(i), j)
            
Next
            vntOut
(i0) = Split(strErg",")(i)
        
Next
End 
If
End Function 
So erhalte ich keine Fehlermeldungen
Wenn sich jemand Zeit nehmen könnte den Code zu kontrollieren währe ich sehr Dankbar.
Beste Grüsse
Toni
tomtom2718 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.