Vba Po

Status
Niet open voor verdere reacties.

mau1990

Banned
Lid geworden
5 jun 2007
Berichten
10
Hallo,

ik heb voor school een project over VBA,
maar ik moet het afhebben om over te gaan. Vandaar dat ik jullie hulp nodig heb.

Ik moet een programma maken waarbij het programma uit een lijst met nummers, de nummers vind. Die ik in een .txt bestand heb staan dus als je een artiest intoetst, dat je dan de nummers te zien krijgt.

Kan iemand mij helpen.

Alvast bedankt
 
Wij zijn er niet voor om je huiswerk of toetsen te maken maar wat hulp moet wel kunnen.

Je dient wel aan te geven wat je op dit moment zelf al hebt.
 
Op het moment hebben we de code zover dat hij het bestand vind (het .txt bestandje), we komen niet echt verder sinds er ons niet meer is geleerd. Ook de lay-out hebben we al.

Dit moet gebeuren:

1. Je voert artiest in
2. Alle titels of 1 titels komt in het uitvoervak (uit het .txt bestandje)

't Hoeft maar met 5 liedjes te kunnen maar moet natuurlijk uitbreidbaar zijn.

Dank.
 
Dit is wat we nu hebben:

Code:
Private Sub CommandButton1_Click()

Dim bestandsnummer As Integer
Dim teller As Integer
Dim gegevens(100) As String
bestandsnummer = FreeFile
Open "H:PO mp3.txt" For Output As #bestandsnummer


        teller = 0
        Do Until EOF(bestandsnummer)
        
        
            Line Input #bestandsnummer, gegevens(teller)
            
            
            
            teller = teller + 1
        
        Loop
        
        
Close #bestandsnummer

End Sub

En daarbij is H: de schijf en PO mp3 het .txt bestandje waar de nummers instaan
 
Welk programma?

VBA is een scripttaal die in iedere office telg aanwezig is en niet alleen daar. Afhankelijk van welke applicatie je gebruikt kent VBA een variatie. Met elk van deze applicaties zou je je vraag kunnen beantwoorden. Het eenvoudigst is toch wel Access. Alhoewel je als database ook een tekstfile zou kunnen gebruiken.
Met jullie code zou je kunnen tellen hoeveel regels je hebt. Wel moet je even het roodgedrukte woordje vervangen door Input.
Code:
Private Sub CommandButton1_Click()

Dim bestandsnummer As Integer
Dim teller As Integer
Dim gegevens(100) As String
bestandsnummer = FreeFile
Open "H:PO mp3.txt" For [COLOR="Red"]Output[/COLOR] As #bestandsnummer

        teller = 0
        Do Until EOF(bestandsnummer)                
            Line Input #bestandsnummer, gegevens(teller)                     
            teller = teller + 1        
        Loop        
        
Close #bestandsnummer

End Sub
Als deze routine klaar is heb je een array gegevens met teller elementen. Echter wanneer je procedure klaar is ben je je variabele ook kwijt. De scope van je array is de procedure en verder niet.
Als je daar een globale array van maakt heb je er meer plezier van.

Probeer eens wat!
Succes!
 
Dag Mau,

Ik neem aan dat het tekstbestand de namen en bijbehorende songs staan.
Maak een userform en zet daar een combobox en een listbox op
Zet die in een globale array a(1,aantal items)
a(0,x)=Zanger
a(1,x)=Song
kies uit de array de zangers (ieder eenmaal) en vul daarmee de combobox.
Code:
For i = 0 to aantalitems
  Combobox1.Text = a(0,i)
  If combobox1.listindex<0 then        'dit betekent dat item nog niet in combobox staat
    for j = 0 to combobox1.listcount - 1  'zoek de alfabetische plaats in de combobox
      if a(0,i) < combobox1.List(j) then exit for
    Next
    combobox1.AddItem a(0,i), j   'plaats het item in de combobox op de gevonden plaats
  End If
Next
Als je in de combobox een naam selecteert laat je programma dan de bijbehorende songs kiezen uit de array.
Code:
For i = 0 to aantalitems
  if a(0,i)=combobox1.text then         'als de zanger met de geselecteerde zanger overeenkomt
    for j = 0 to Listbox1.listcount-1     'zoek de alfabetische plaats van de song in de listbox
      if a(1,i)<listbox1.list(j) then exit for
    next
    listbox1.additem a(1,i),j   'plaats de song in de listbox
  end if
next

Succes.

Axel.
 
Dag Mau,

Er ging iets verkeerd met de site. Ik ga verder met de tweede code;

Code:
For i = 0 to aantalitems
  if a(0,i)=combobox1.text then         'als de zanger met de geselecteerde zanger overeenkomt
    for j = 0 to Listbox1.listcount-1     'zoek de alfabetische plaats van de song in de listbox
      if a(1,i) < listbox1.list(j) then exit for
    next
    listbox1.additem a(1,i), j
  end if
next
Succes,

Axel.
 
Dag Mau,

Er gingb iets mis met de site ik ga verder met code twee.

Code:
For i = 0 to aantalitems
  if a(0,i)=combobox1.text then         'als de zanger met de geselecteerde zanger overeenkomt
    for j = 0 to Listbox1.listcount-1     'zoek de alfabetische plaats van de song in de listbox
      if a(1,i) < listbox1.list(j) then exit for
    next
    listbox1.additem,  j        'Song wordt in listbox geplaatst
  end if
next

Succes,

Axel.
 
Dag Mau,

Er ging iets mis met de site ik ga verder met code twee.

Code:
For i = 0 to aantalitems
  if a(0,i)=combobox1.text then         'als de zanger met de geselecteerde zanger overeenkomt
    for j = 0 to Listbox1.listcount-1     'zoek de alfabetische plaats van de song in de listbox
      if a(1,i) < listbox1.list(j) then exit for
    next
    listbox1.additem,  j        'Song wordt in listbox geplaatst
  end if
next

Succes,

Axel.
 
Dag Mau,

Ik neem aan dat het tekstbestand de namen en bijbehorende songs staan.
Maak een userform en zet daar een combobox en een listbox op
Zet die in een globale array a(1,aantal items)
a(0,x)=Zanger
a(1,x)=Song
kies uit de array de zangers (ieder eenmaal) en vul daarmee de combobox.
Code:
For i = 0 to aantalitems
  Combobox1.Text = a(0,i)
  If combobox1.listindex<0 then        'dit betekent dat item nog niet in combobox staat
    for j = 0 to combobox1.listcount - 1  'zoek de alfabetische plaats in de combobox
      if a(0,i) < combobox1.List(j) then exit for
    Next
    combobox1.AddItem a(0,i), j   'plaats het item in de combobox op de gevonden plaats
  End If
Next
Als je in de combobox een naam selecteert laat je programma dan de bijbehorende songs kiezen uit de array.
Code:
For i = 0 to aantalitems
  if a(0,i)=combobox1.text then         'als de zanger met de geselecteerde zanger overeenkomt
    for j = 0 to Listbox1.listcount-1     'zoek de alfabetische plaats van de song in de listbox
      if a(1,i)<listbox1.list(j) then exit for
    next
    listbox1.additem a(1,i),j   'plaats de song in de listbox
  end if
next

Succes.

Axel.

Ik stel je hulp erg op prijs maar ik ben echt helemaal onbekend met VBA en snap welke kant ik op moet met die array's en wat die combo- en lisboxen zijn.

Ik kan het niet aan mijn leraar vragen want die heb ik deze week niet meer (PO moet vrijdag afzijn).

Als het makkelijker is kan je 't miscchien in een Word bestandje opslaan zodat wij kunnen kijken en ervan leren.
 
Ik heb nu dit: Het werkt nog niet, maar dat ligt aan mij tekort aan kennis die ik hiermee heb. Anyways volgens mij klopt er niks van :rolleyes:

(Schijf is trouwens verandert omdat ik nu thuis werk)

Code:
Private Sub ComboBox1_Change()

For i = 0 To aantalitems
  If a(0, i) = ComboBox1.Text Then      'als de zanger met de geselecteerde zanger overeenkomt
    For j = 0 To ListBox1.ListCount - 1   'zoek de alfabetische plaats van de song in de listbox
      if a(1,i)

End Sub

Private Sub CommandButton1_Click()

Dim bestandsnummer As Integer
Dim teller As Integer
Dim gegevens(100) As String
bestandsnummer = FreeFile
Open "C:MP3 PO.txt" For Input As #bestandsnummer

        teller = 0
        Do Until EOF(bestandsnummer)
            Line Input #bestandsnummer, gegevens(teller)
            teller = teller + 1
        Loop
        
Close #bestandsnummer

End Sub

Private Sub ListBox1_Click()

For i = 0 To aantalitems
  ComboBox1.Text = a(0, i)
  If ComboBox1.ListIndex < 0 Then      'dit betekent dat item nog niet in combobox staat
    For j = 0 To ComboBox1.ListCount - 1  'zoek de alfabetische plaats in de combobox
      If a(0, i) < ComboBox1.List(j) Then Exit For
    Next
    ComboBox1.AddItem a(0, i), j  'plaats het item in de combobox op de gevonden plaats
  End If
Next

End Sub

Dit moet dus gebeuren:

1. Je voert een ARTIEST in in een invoervak
2. Je klikt ZOEK bij een OPDRACHTKNOP
3. Er komt 1 of meerdere namen van liedjes van de ingevoerde artiest in het uitvoervak

De artiesten staan bij mij in een .txt bestandje genaamd MP3 PO.txt op de C: schijf
 
Dag Mau,

Zit je op een school met het beleid gooi maar in het diepe dan leren ze wel zwemmen?

De code die ik gaf is een indicatie. Als je daarmee niet zelf een programma kunt maken, dan kun je hier beter niet aan beginnen enh de opdracht teruggeven.

Gegroet,

Axel.
 
Dat zuigt. Ik snap niks van VBA en hebben lang niet genoeg uitleg gekregen (ik snap hoe je een euro-gulden omrekenaar moet maken).

Ik snap dat jullie er niet voor huiswerk zijn maar kan moeilijk opdracht teruggeven als het een Praktische opdracht is en nog een Handelingsdeel ook (heb je nodig om over te gaan).

Tjaah, ik weet niet meer wat ik moet doen :confused:
 
Jonge ik weet dat dit niet voor huiswerk is maar heeft iemand misschien een goeie link of een bestandje met een code dat erop lijkt? IETS?
 
Jonge ik weet dat dit niet voor huiswerk is maar heeft iemand misschien een goeie link of een bestandje met een code dat erop lijkt? IETS?

Als je weet dat huiswerk hier niet door de helpers gemaakt wordt, waarom vraag je het dan nog?

Axel en Guus hebben jou al een heel eind op weg gezet. Ga aan de slag met hun code en tips.

Wigi
 
Tot nu toe hebben we dit, ik heb zoveel mogelijk gegekeken naar alle posts hier maar kom niet verder dan dit. Ik heb nog wat info gezocht over array's omdat ik daar niks van snap, en ben daar ook niet echt mee verder gekomen.

Dit hebben we dus tot nu toe

Code:
Private Sub Algemeen()

'declaraties

Dim bestandsnummer As Integer
Dim teller As Integer
Dim gegevens(100) As String
bestandsnummer = FreeFile
Open "H:PO mp3.txt" For Input As #bestandsnummer        'opent het bestand waarin de namen van onze mp3's staan

'einde declaraties

        teller = 0
        Do Until EOF(bestandsnummer)
        
        
            Line Input #bestandsnummer, gegevens(teller)
            
            
            
            teller = teller + 1
        
        Loop
        
        
Close #bestandsnummer                                   'stopt met lezen van bestand

End Sub

Private Sub ComboBox1_Click()

a(1,aantal items)
a(0, x) = Zanger
a(1, x) = Song

For i = 0 To aantalitems
  ComboBox1.Text = a(0, i)
  If ComboBox1.ListIndex < 0 Then                   'dit betekent dat item nog niet in combobox staat
    For j = 0 To ComboBox1.ListCount - 1            'zoek de alfabetische plaats in de combobox
      If a(0, i) < ComboBox1.List(j) Then Exit For
    Next
    ComboBox1.AddItem a(0, i), j                    'plaats het item in de combobox op de gevonden plaats
  End If
Next

End Sub



Private Sub ListBox1_Click()

For i = 0 To aantalitems
  If a(0, i) = ComboBox1.Text Then                  'als de zanger met de geselecteerde zanger overeenkomt
    For j = 0 To ListBox1.ListCount - 1             'zoek de alfabetische plaats van de song in de listbox
      If a(1, i) < ListBox1.List(j) Then Exit For
    Next
    ListBox1.AddItem a(1, i), j                     'plaats de song in de listbox
  End If
Next


End Sub

Mijn zoontje van 12 is ontvoerd door de Russische Maffia en als ik hem terog wil moet ik deze code maken, help mij AUB!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan