• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Textboxen met een lus vullen

Status
Niet open voor verdere reacties.

Diniz

Gebruiker
Lid geworden
1 jun 2009
Berichten
62
Ik heb een aantal textboxen die ik met een lus wil vullen, helaas krijg ik de foutmelding dat de methode of gegevenslid niet kan worden gevonden. Wat doe ik fout:

Zo werkt het dus wel:

Blad1.TextBox1.Text = intArtikelnummer
Blad1.TextBox2.Text = intOmschrijving
Blad1.TextBox3.Text = intPrijs

Maar zo niet:

For i = 1 to 3

Blad1.TextBox(i).Text = intArtikelnummer
Blad1.TextBox(i).Text = intOmschrijving
Blad1.TextBox(i).Text = intPrijs

Next i
 
Diniz,

Plaats even een klein voorbeeldje, zonder gevoelige gegevens. Dan krijg je sneller hulp.

;)
 
Op deze site heb je de vraag al gesteld.

Een lus heeft zo geen zin omdat de waardes van de textboxen allen eerst de waarde van intArtikelnummer krijgen, vervolgens krijgen allen de waarden van intOmschrijving (een omschrijving is doorgaans geen integer) en tenslotte krijgen alle textboxen de waarde van intPrijs.
Dus alle 3 de textboxen krijgen steeds dezelfde inhoud.

Met vriendelijke groet,


Roncancio
 
Op deze site heb je de vraag al gesteld.

Scherp! En volgens mij is GOT niet helemaal mijn platform voor mijn VBA vragen.

Een lus heeft zo geen zin omdat de waardes van de textboxen allen eerst de waarde van intArtikelnummer krijgen, vervolgens krijgen allen de waarden van intOmschrijving (een omschrijving is doorgaans geen integer) en tenslotte krijgen alle textboxen de waarde van intPrijs.
Dus alle 3 de textboxen krijgen steeds dezelfde inhoud.

Met vriendelijke groet,


Roncancio

Wederom scherp, heb ik nog niet naar gekeken aangezien het toch nog niet werkt. Zal idd nog apart op gehoogd moeten worden.


Het tooltje betreft een prijskaartgenerator, hieronder de Sub die de prijskaartjes moet invullen.


Code:
Private Sub Vullen()

Sheets("Schaprandklein").Select
    
    dblAantalRijen = Cells.SpecialCells(xlCellTypeLastCell).Row - 1

For j = 1 To dblAantalRijen
    
    Sheets("Schaprandklein").Select
    
    Range("A" + CStr(j + 1)).Select
    dblArtikelnummer = ActiveCell.Value
    
    Range("B" + CStr(j + 1)).Select
    strOmschrijving = ActiveCell.Value
    
    Sheets("Schaprandklein").Select
    Range("G" + CStr(j + 1)).Select
    intPrijs = ActiveCell.Value
   
    Sheets("Blad1").Select       
     
      
    Blad1.TextBox(j).Text = dblArtikelnummer
    Blad1.TextBox(j).Text = strOmschrijving
    Blad1.TextBox(j).Text = strPrijs
   
Next j
   
End Sub
 
Je hoeft geen .Select and .Activate te gebruiken.
Liever niet zelfs.

Tevens behoor je de variabelen te declareren, dus Dim ... As ....

Code:
Private Sub Vullen()
Dim J As Long
Dim dblArtikelnummer As Double
Dim  strOmschrijving As String
Dim intPrijs As Integer

With Sheets("Schaprandklein")
    dblAantalRijen = Cells.SpecialCells(xlCellTypeLastCell).Row - 1
   
    For j = 1 To dblAantalRijen
        dblArtikelnummer = .Range("A" + CStr(j + 1)).Value
        strOmschrijving = .Range("B" + CStr(j + 1)).Value
        intPrijs = .Range("G" + CStr(j + 1)).Value
        Blad1.TextBox1.Text = dblArtikelnummer
        Blad1.TextBox2.Text = strOmschrijving
        Blad1.TextBox3.Text = strPrijs
    Next
End With

End Sub


Met vriendelijke groet,


Roncancio
 
Code:
Private Sub Vullen()

    With Sheets("Schaprandklein")
    
        dblAantalRijen = .Cells.SpecialCells(xlCellTypeLastCell).Row - 1

        For J = 1 To dblAantalRijen
            Blad1.OLEObjects("TextBox" & 3 * (J - 1) + 1).Object.Value = .Range("A" & J + 1).Value
            Blad1.OLEObjects("TextBox" & 3 * (J - 1) + 2).Object.Value = .Range("B" & J + 1).Value
            Blad1.OLEObjects("TextBox" & 3 * (J - 1) + 3).Object.Value = .Range("G" & J + 1).Value
        Next
    End With

End Sub

Wigi
 
Het plaatsen van dezelfde vraag op een ander forum wordt 'crossposting' genoemd en is volgens de forumregels niet toegestaan. Het kan zelfs leiden tot een (tijdelijke) verbanning van het forum. Niet doen dus!

:confused:
 
Het plaatsen van dezelfde vraag op een ander forum wordt 'crossposting' genoemd en is volgens de forumregels niet toegestaan. Het kan zelfs leiden tot een (tijdelijke) verbanning van het forum. Niet doen dus!

:confused:

Mijn excuus hiervoor, daar ik op GOT geen bevredigend antwoord kreeg ben ik gaan zoeken naar een forum waar naar mijn idee dit soort problemen werden opgelost. Ik ben gaan zoeken in de topics en ik kreeg het idee dat ik voor mijn vragen hier beter terecht kan dan op tweakers.

En dat blijkt!

De oplossing van Wigi werkt niet alleen maar is ook nog eens een strak stukje code! Ik ga nog even opzoeken hoe het precies in elkaar zit zodat ik het niet alleen klakkeloos kopieer, maar ik de code ook snap zodat ik deze en andere macro's ook van mij kan verbeteren!

Ik heb alleen nog een vraag:
hoe ik kan instellen dat de prijzen met 2 cijfers achter de komma weergeven worden?
 
Vraag is waarom je zoveel textboxes hebt? (3 per rij)

Want een bestand met zoveel van die objecten zou wel eens niet stabiel kunnen zijn. En code om er mee te werken is ook niet zo makkelijk te schrijven.

De weergave van de getallen kan je instellen met Format. Bvb.

Code:
Blad1.OLEObjects("TextBox1").Object.Value = Format( getal, notatie )

Wigi
 
Vraag is waarom je zoveel textboxes hebt? (3 per rij)

Want een bestand met zoveel van die objecten zou wel eens niet stabiel kunnen zijn. En code om er mee te werken is ook niet zo makkelijk te schrijven.

De weergave van de getallen kan je instellen met Format. Bvb.

Code:
Blad1.OLEObjects("TextBox1").Object.Value = Format( getal, notatie )

Wigi


Ben weer verder gegaan, door de drukte even geen tijd gehad.

Heb 3 textboxen per cel omdat ik per cel een artikelnummer, omschrijving en prijs wil weergeven.


Alleen, als ik die textboxen met code wil kopieren naar een andere cel, hoe doe ik dat? Heb lopen zoeken op dit forum en google, maar nog geen oplossing gevonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan