Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Suchen mit VB

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Suchen mit VB (2012 mal gelesen)
Prinzcan
Mitglied



Sehen Sie sich das Profil von Prinzcan an!   Senden Sie eine Private Message an Prinzcan  Schreiben Sie einen Gästebucheintrag für Prinzcan

Beiträge: 81
Registriert: 30.08.2010

erstellt am: 26. Sep. 2011 12:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


maske.GIF

 
Hallo Zusammen,

da ich noch ziemlich unerfahren mit VB bin würde ich gerne wissen wie ich das folgende Problem lösen kann:

und zwar möchte ich ein bestehendes VB Program den ich erhalten habe erweitern.
Auf dem beigefügten Bild kann man erkennen das die Ausgabemaske mir nur 7 werte ausgibt also von "Blatt" bis "Hersteller"
Doch wie kann ich das erweitern ich möchte das ich mehr als 7 werte ausgeben kann.
Zudem habe ich das Problem das zu lange texte nicht vollständig angezeigt werden wie kann ich dies korrigieren ?

Das Programm dazu sieht wie folgt aus :

Private Sub CommandButton1_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer

ListBox1.Clear
xSuche = TextBox1.Value
If xSuche = "" Then
    MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
    Exit Sub
End If
If ComboBox1.Value = "" And CheckBox2.Value = False Then
    MsgBox "Bitte geben Sie ein, wo der Begriff gesucht werden soll!", vbExclamation, "Achtung!"
    Exit Sub
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
    If CheckBox2.Value = True Or Worksheets(iCounter).Name = ComboBox1.Value Then
        Set rng = Worksheets(iCounter).Cells.Find _
            (xSuche, lookat:=Suchart, LookIn:=xlValues)
        If Not rng Is Nothing Then
            With Worksheets(iCounter)
                xErste = rng.Address(False, False)
                y = True
                Do Until xAdresse = xErste
                    ReDim Preserve arr(0 To 6, 0 To iRowU)
                    arr(0, iRowU) = .Name
                    arr(1, iRowU) = rng.Address(False, False)
                    arr(2, iRowU) = .Cells(rng.Row, 1)
                    arr(3, iRowU) = .Cells(rng.Row, 2)
                    arr(4, iRowU) = .Cells(rng.Row, 3)
                    arr(5, iRowU) = .Cells(rng.Row, 4)
                    arr(6, iRowU) = .Cells(rng.Row, 5)
                    iRowU = iRowU + 1
                    Set rng = .Cells.FindNext(after:=rng)
                    xAdresse = rng.Address(False, False)
                Loop
                xAdresse = ""
                xErste = ""
            End With
        End If
    End If
Next iCounter
If y = False Then
    MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
    ListBox1.Column = arr
End If
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 26. Sep. 2011 12:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinzcan 10 Unities + Antwort hilfreich

Hallo,
es fehlt einiges an Code! Die Erweiterung der Oberfläche, muss auch im Editor passieren. Demnach muss der Listbox eine weitere Spalte hinzugefügt werden. Das könnte auch im Programm passieren, aber das sehe ich eben nicht, da du nur den Code vom Objekt "CommandButton1" für das Ereigniss "Click" gepostet hast.
Um die Liste dann zu befüllen, musst du das Array "arr()" um 1 in der ersten Dimension erweitern. Demnach muss dass "ReDim Preserve arr(0 To 6, 0 To iRowU)" > "ReDim Preserve arr(0 To 7, 0 To iRowU)" so aussehen. Dann kannst du den achten Parameter mit "arr(7, iRowU) = .Cells(rng.Row, 6)" dem Array hinzufügen. Wie nun allerdings die Daten in das Listelement geschrieben werden, geht ebenfalls nicht aus dem Code hervor!
 
Code:
Private Sub CommandButton1_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer

ListBox1.Clear
xSuche = TextBox1.Value
If xSuche = "" Then
    MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
    Exit Sub
End If
If ComboBox1.Value = "" And CheckBox2.Value = False Then
    MsgBox "Bitte geben Sie ein, wo der Begriff gesucht werden soll!", vbExclamation, "Achtung!"
    Exit Sub
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
    If CheckBox2.Value = True Or Worksheets(iCounter).Name = ComboBox1.Value Then
        Set rng = Worksheets(iCounter).Cells.Find _
            (xSuche, lookat:=Suchart, LookIn:=xlValues)
        If Not rng Is Nothing Then
            With Worksheets(iCounter)
                xErste = rng.Address(False, False)
                y = True
                Do Until xAdresse = xErste
                    ReDim Preserve arr(0 To 7, 0 To iRowU)
                    arr(0, iRowU) = .Name
                    arr(1, iRowU) = rng.Address(False, False)
                    arr(2, iRowU) = .Cells(rng.Row, 1)
                    arr(3, iRowU) = .Cells(rng.Row, 2)
                    arr(4, iRowU) = .Cells(rng.Row, 3)
                    arr(5, iRowU) = .Cells(rng.Row, 4)
                    arr(6, iRowU) = .Cells(rng.Row, 5)
                    arr(7, iRowU) = .Cells(rng.Row, 6)
                    iRowU = iRowU + 1
                    Set rng = .Cells.FindNext(after:=rng)
                    xAdresse = rng.Address(False, False)
                Loop
                xAdresse = ""
                xErste = ""
            End With
        End If
    End If
Next iCounter
If y = False Then
    MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
    ListBox1.Column = arr
End If
End Sub


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 26. Sep. 2011 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinzcan 10 Unities + Antwort hilfreich

Hi Prinzcan,

copy+paste ohne Quellenangabe  ? Zu Deinen Fragen...

1. "Doch wie kann ich das erweitern ich möchte das ich mehr als 7 werte ausgeben kann." - Habe den Code nicht laufen lassen, vermute aber hier:

Code:
...Do Until xAdresse = xErste
                    ReDim Preserve arr(0 To 6, 0 To iRowU)...
Beginnt bei Null, läuft bis 6, also 7 Werte. Ergänze eine Zeile mit einer 7 (arr(7, iRowU) = .Cells(rng.Row, 6)) und schau, was passiert.

2. "...das zu lange texte nicht vollständig angezeigt werden "
Ich tippe auf die Eigenschaften der Box. Schau mal, ob Du dort den (Zeilen)Umbruch einstellen kannst oder was bei Wordwrap so geht.

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

erstellt am: 26. Sep. 2011 12:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinzcan 10 Unities + Antwort hilfreich

Hab es gerade erst gesehen! Hab wohl zu schnell überflogen 

Das Array "arr()" wird an das Listelement übergeben...

Code:
Else
    ListBox1.Column = arr

Demnach müsste es so passen. Also Listbox1 muss um einer Spalte erweitert und der Code entsprechend der genannten Inhalte geändert werden!

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinzcan
Mitglied



Sehen Sie sich das Profil von Prinzcan an!   Senden Sie eine Private Message an Prinzcan  Schreiben Sie einen Gästebucheintrag für Prinzcan

Beiträge: 81
Registriert: 30.08.2010

erstellt am: 26. Sep. 2011 13:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

danke für die schneller antworten,

aber wie gesagt ich bin ziemlich unerfahren mit VB
wie kann ich den Listbox1 um eine Spalte erweitern ??

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinzcan
Mitglied



Sehen Sie sich das Profil von Prinzcan an!   Senden Sie eine Private Message an Prinzcan  Schreiben Sie einen Gästebucheintrag für Prinzcan

Beiträge: 81
Registriert: 30.08.2010

erstellt am: 26. Sep. 2011 14:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

also die idee mit einer Zeile dazu ergänzen hatte ich auch
ich meine also :
                (arr(7, iRowU) = .Cells(rng.Row, 6))
aber trotzdem wird in der ausgabemaske kein weiterer wert angezeigt

ich kann aber zum bsp sagen (arr(6, iRowU) = .Cells(rng.Row, 13))
dann würde er den Inhalt von spalte 13 feld 6 einfügen aber so wie ich es will, macht er es nicht.

Habe auch mir Wordwap angeschaut auch dieses Problem kann ich damit nicht lösen :-(

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 26. Sep. 2011 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinzcan 10 Unities + Antwort hilfreich

Hm... Ferndiagnose ist schwierig. Magst Du eine Beispielmappe (mit Userform und Code) hochladen, persönliche Daten vorher raus?

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinzcan
Mitglied



Sehen Sie sich das Profil von Prinzcan an!   Senden Sie eine Private Message an Prinzcan  Schreiben Sie einen Gästebucheintrag für Prinzcan

Beiträge: 81
Registriert: 30.08.2010

erstellt am: 26. Sep. 2011 15:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Paulchen,

ich lade denn die datei hoch die ich selber im Internet gefunden habe.

[rredit] upload entfernt, Quelle siehe nächstes posting [/rredit]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 26. Sep. 2011 16:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinzcan 10 Unities + Antwort hilfreich

Das ist jetzt aber nicht so schön.
Darfst Du diese Datei hier veröffentlichen? Hast DU die Rechte daran?
Und warum fragst Du den Ersteller nicht selber? Dort gibt es auch ein Forum.

QUELLE: http://www.excel-werkstatt.de ->> downloads >> Suchen 3

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinzcan
Mitglied



Sehen Sie sich das Profil von Prinzcan an!   Senden Sie eine Private Message an Prinzcan  Schreiben Sie einen Gästebucheintrag für Prinzcan

Beiträge: 81
Registriert: 30.08.2010

erstellt am: 26. Sep. 2011 16:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ihn habe ich schon längst gefragt gehabt doch leider habe ich
keine antwort mehr erhalten und ich brauche für die arbeit sehr schnell eine antwort 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz