• 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.

userform samenvoegen dan wegschrijven

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

In de bijlage vind u een orderformulier, waar doormiddel van een menu die is aangemaakt gekozen kan worden voor een artikelbestand op te vragen of N.A.W gegevens .
Dit werkt perect en deze worden ook nog geplaatst in het formulier.

Ik heb nu eigenlijk twee vragen.

Is het mogelijk om die twee formulieren samen te voegen.
Ik heb het al geprobeerd maar dan krijg een fout melding op deze regel, waarschijnlijk omdat hij er dan twee keer in staat.
Code:
Private Sub UserForm_Initialize()

Nu zou ik graag willen dat ik het formulier eerst helemaal invul en dat hij dan pas wordt weggeschreven in het formulier.
Dus N.A.W gegevens plaatsen, en dan de artikelen toevoegen in het formulier, Is er een mogelijkhied om meerder regels te plaatsen in een textbox, of moet je daar verschillende texoxen voor gebruiken ivm dat als je gaat wegschrijven in het fomulier je ook naar meerder cellen gaat wegschrijven.

In afwachting

groet HWV

PS als je de bestanden allemaal openzet dan zal het formulier in zijn geheel werken
 

Bijlagen

Laatst bewerkt:
Al verder gekomen

Beste,

Deel 1 van de vraag heb ik ondertussen al opgelost.
ik blijf enkel hangen op het tweede gedeelte van mijn vraag.


In het voorbeeld zit de uitkomst hoe ver ik nu ben gekomen.

Ik kan de NAW gegevens vullen in de userform, doormiddel van een debiteurennummer of een klantnaam. IK kan een artikel opzoeken doormiddel van artikelnummer of omschrijving.
Ik wil graag een artikel toevoegen aan het userformulier doormiddel van een knop "plaats artikel", nu moet er dus gekeken worden welke tekstbox nog leeg is en daar moet het volgende artikel geplaatst worden enz

Hoe kan ik deze stap verder maken ?

In afwachting van uw hulp

Groet HWV
 

Bijlagen

Laatst bewerkt:
Plaatsen van een orderregel

Code:
Private Sub CommandButton1_Click()

Txt_orderregel1.Value = Txt_ID.Value

If Txt_orderregel1.Value > "" Then
    Txt_orderregel2.text = Txt_ID.Value
      ElseIf Txt_orderregel2.Value > "" Then
        Txt_orderregel2.text = Txt_ID.Value
           ElseIf Txt_orderregel3.Value > "" Then
            Txt_orderregel3.text = Txt_ID.Value
End If

End Sub

Ik heb onder de knop orderregel toevogen bovengenoemde code gezet, maar doet niet wat ik wil dat hij doet.

Wat ik wil bereiken is de waarde Txt_ID gevuld wordt op, als Txt_orderregel1 is gevuld dat hij dan de volgende order regel vult op Txt_orderregel2, als deze dan gevuld is dan moet hij Txt_orderegel3 vullen enz.
De rest probeer ik dan zelf wel weer te vullen om de gegevens compleet te krijgen

Groet HWV
 

Bijlagen

Eeen stap verder

Beste,

Om jullie toch de uitslag te geven hoever ik nu ben gekomen hier de code die werkt incl bestand

Code:
Private Sub CommandButton1_Click()

    If Txt_orderregel1.Value = "" Then
        Txt_orderregel1.text = Txt_ID.Value
        Txt_orderregelOmschrijving1.text = Txt_Omschrijving.Value
        Txt_orderregelEenheid1 = Txt_Verpakt.Value
    Else
        If Txt_orderregel2.Value = "" Then
            Txt_orderregel2.text = Txt_ID.Value
            Txt_orderregelOmschrijving2.text = Txt_Omschrijving.Value
            Txt_orderregelEenheid2 = Txt_Verpakt.Value
        Else
            If Txt_orderregel3.Value = "" Then
               Txt_orderregel3.text = Txt_ID.Value
               Txt_orderregelOmschrijving3.text = Txt_Omschrijving.Value
               Txt_orderregelEenheid3 = Txt_Verpakt.Value
          Else
              If Txt_orderregel4.Value = "" Then
                 Txt_orderregel4.text = Txt_ID.Value
                 Txt_orderregelOmschrijving4.text = Txt_Omschrijving.Value
                 Txt_orderregelEenheid4 = Txt_Verpakt.Value
            Else
                If Txt_orderregel5.Value = "" Then
                   Txt_orderregel5.text = Txt_ID.Value
                   Txt_orderregelOmschrijving5.text = Txt_Omschrijving.Value
                   Txt_orderregelEenheid5 = Txt_Verpakt.Value
              Else
                 If Txt_orderregel6.Value = "" Then
                    Txt_orderregel6.text = Txt_ID.Value
                    Txt_orderregelOmschrijving6.text = Txt_Omschrijving.Value
                    Txt_orderregelEenheid6 = Txt_Verpakt.Value
                 Else
                    If Txt_orderregel7.Value = "" Then
                       Txt_orderregel7.text = Txt_ID.Value
                       Txt_orderregelOmschrijving7.text = Txt_Omschrijving.Value
                       Txt_orderregelEenheid7 = Txt_Verpakt.Value
                   Else
                      If Txt_orderregel8.Value = "" Then
                         Txt_orderregel8.text = Txt_ID.Value
                         Txt_orderregelOmschrijving8.text = Txt_Omschrijving.Value
                         Txt_orderregelEenheid8 = Txt_Verpakt.Value
                      Else
                         If Txt_orderregel9.Value = "" Then
                            Txt_orderregel9.text = Txt_ID.Value
                            Txt_orderregelOmschrijving9.text = Txt_Omschrijving.Value
                            Txt_orderregelEenheid9 = Txt_Verpakt.Value
                          Else
                            If Txt_orderregel10.Value = "" Then
                               Txt_orderregel10.text = Txt_ID.Value
                               Txt_orderregelOmschrijving10.text = Txt_Omschrijving.Value
                               Txt_orderregelEenheid10 = Txt_Verpakt.Value
                              Else
                                 If Txt_orderregel11.Value = "" Then
                                 Txt_orderregel11.text = Txt_ID.Value
                                 Txt_orderregelOmschrijving11.text = Txt_Omschrijving.Value
                                 Txt_orderregelEenheid11 = Txt_Verpakt.Value
                                Else
                                   If Txt_orderregel12.Value = "" Then
                                   Txt_orderregel12.text = Txt_ID.Value
                                   Txt_orderregelOmschrijving12.text = Txt_Omschrijving.Value
                                   Txt_orderregelEenheid12 = Txt_Verpakt.Value
                                Else
                                
    If Txt_orderregel13.Value = "" Then
        Txt_orderregel13.text = Txt_ID.Value
        Txt_orderregelOmschrijving13.text = Txt_Omschrijving.Value
        Txt_orderregelEenheid13 = Txt_Verpakt.Value
    Else
        If Txt_orderregel14.Value = "" Then
            Txt_orderregel14.text = Txt_ID.Value
            Txt_orderregelOmschrijving14.text = Txt_Omschrijving.Value
            Txt_orderregelEenheid14 = Txt_Verpakt.Value
        Else
            If Txt_orderregel15.Value = "" Then
               Txt_orderregel15.text = Txt_ID.Value
               Txt_orderregelOmschrijving15.text = Txt_Omschrijving.Value
               Txt_orderregelEenheid15 = Txt_Verpakt.Value
          Else
              If Txt_orderregel16.Value = "" Then
                 Txt_orderregel16.text = Txt_ID.Value
                 Txt_orderregelOmschrijving16.text = Txt_Omschrijving.Value
                 Txt_orderregelEenheid16 = Txt_Verpakt.Value
            Else
                If Txt_orderregel17.Value = "" Then
                   Txt_orderregel17.text = Txt_ID.Value
                   Txt_orderregelOmschrijving17.text = Txt_Omschrijving.Value
                   Txt_orderregelEenheid17 = Txt_Verpakt.Value
              Else
                 If Txt_orderregel18.Value = "" Then
                    Txt_orderregel18.text = Txt_ID.Value
                    Txt_orderregelOmschrijving18.text = Txt_Omschrijving.Value
                    Txt_orderregelEenheid18 = Txt_Verpakt.Value
                 Else
                    If Txt_orderregel19.Value = "" Then
                       Txt_orderregel19.text = Txt_ID.Value
                       Txt_orderregelOmschrijving19.text = Txt_Omschrijving.Value
                       Txt_orderregelEenheid19 = Txt_Verpakt.Value
                   Else
                      If Txt_orderregel20.Value = "" Then
                         Txt_orderregel20.text = Txt_ID.Value
                         Txt_orderregelOmschrijving20.text = Txt_Omschrijving.Value
                         Txt_orderregelEenheid20 = Txt_Verpakt.Value
                      Else
                         If Txt_orderregel21.Value = "" Then
                            Txt_orderregel21.text = Txt_ID.Value
                            Txt_orderregelOmschrijving21.text = Txt_Omschrijving.Value
                            Txt_orderregelEenheid21 = Txt_Verpakt.Value
                          Else
                            If Txt_orderregel22.Value = "" Then
                               Txt_orderregel22.text = Txt_ID.Value
                               Txt_orderregelOmschrijving22.text = Txt_Omschrijving.Value
                               Txt_orderregelEenheid22 = Txt_Verpakt.Value
                              Else
                                 If Txt_orderregel23.Value = "" Then
                                 Txt_orderregel23.text = Txt_ID.Value
                                 Txt_orderregelOmschrijving23.text = Txt_Omschrijving.Value
                                 Txt_orderregelEenheid23 = Txt_Verpakt.Value
                                Else
                                   If Txt_orderregel24.Value = "" Then
                                   Txt_orderregel24.text = Txt_ID.Value
                                   Txt_orderregelOmschrijving24.text = Txt_Omschrijving.Value
                                   Txt_orderregelEenheid24 = Txt_Verpakt.Value
                                
                                End If
                             End If
                         End If
                      End If
                   End If
                End If
             End If
           End If
        End If
     End If
   End If
End If
                                
                                End If
                             End If
                         End If
                      End If
                   End If
                End If
             End If
           End If
        End If
     End If
   End If
End If
End Sub

en om in het formulier te plaatsen

Code:
Private Sub CommandButton3_Click()
[D9] = Cbo_Product1.text
[B17] = Txt_orderregel1.text
    [N17] = Txt_orderregelAantal1.text
[B18] = Txt_orderregel2.text
    [N18] = Txt_orderregelAantal2.text
[B19] = Txt_orderregel3.text
    [N19] = Txt_orderregelAantal3.text
[B20] = Txt_orderregel4.text
    [N20] = Txt_orderregelAantal4.text
[B21] = Txt_orderregel5.text
    [N21] = Txt_orderregelAantal5.text
[B22] = Txt_orderregel6.text
    [N22] = Txt_orderregelAantal6.text
[B23] = Txt_orderregel7.text
    [N23] = Txt_orderregelAantal7.text
[B24] = Txt_orderregel8.text
    [N24] = Txt_orderregelAantal8.text
[B25] = Txt_orderregel9.text
    [N25] = Txt_orderregelAantal9.text
[B26] = Txt_orderregel10.text
    [N26] = Txt_orderregelAantal10.text
[B27] = Txt_orderregel11.text
    [N27] = Txt_orderregelAantal11.text
[B28] = Txt_orderregel12.text
    [N28] = Txt_orderregelAantal12.text
[B29] = Txt_orderregel13.text
    [N29] = Txt_orderregelAantal13.text
[B30] = Txt_orderregel14.text
    [N30] = Txt_orderregelAantal14.text
[B31] = Txt_orderregel15.text
    [N31] = Txt_orderregelAantal15.text
[B32] = Txt_orderregel16.text
    [N32] = Txt_orderregelAantal16.text
[B33] = Txt_orderregel17.text
    [N33] = Txt_orderregelAantal17.text
[B34] = Txt_orderregel18.text
    [N34] = Txt_orderregelAantal18.text
[B35] = Txt_orderregel19.text
    [N35] = Txt_orderregelAantal19.text
[B36] = Txt_orderregel20.text
    [N36] = Txt_orderregelAantal20.text
[B37] = Txt_orderregel21.text
    [N37] = Txt_orderregelAantal21.text
[B38] = Txt_orderregel22.text
    [N38] = Txt_orderregelAantal22.text
[B39] = Txt_orderregel23.text
    [N39] = Txt_orderregelAantal23.text
[B40] = Txt_orderregel24.text
    [N40] = Txt_orderregelAantal24.text

End Sub


Groet HWV
 

Bijlagen

Ik heb een vraagje:

Je gebruikt een Combobox als Commandbutton en je geeft er een naam aan als zijnde het een Textbox (Txt_Verpakt).

Dit vind ik persoonlijk nogal opmerkelijk vandaar dat ik mij afvraag wat de bedoeling hiervan is.
Het is namelijk aan te bevelen om besturingselementen (Comboxen, Textboxen, etc) te gebruiken waarvoor je bedoelt zijn.
Overigens zou je ipv meerdere Textboxen ook een Listbox met meerdere kolommen kunnen gebruiken.

Met vriendelijke groet,


Roncancio
 
Bedankt

Ten eerste bedankt voor de reactie die jij mij geef op ij vraag.

Ik ben bezig om VBA te begrijpen, en kom ook telkens een stapje verder.
De combobox gebruik ik om het volgende.Ik kan zoeken op Debiteurennummer, Artikelnummer. en ik kan zoeken klantnaam en op omschrijving.
Het zal niet de mooiste code zijn maar het werkt wel, ik heb hem gepost om dit soort reactie`s te krijgen om er van te leren
Veel haal ik van deze helpmij site en deels van
http://www.datapigtechnologies.com/ExcelMain.htm waar je een goed uitleg krijg van hoe en wat.

Ik hoop ook dat e mijn doelstelling begrijp.
Ik maak dit formulier voor andere personen die bijna tot geen verstand hebben van Excel standaard, du mijn bedoeling is om een formulier te aken waar ze weinig aan kunnen veranderen dat dit makkelijker werkt voor hun.

Zijn er suggestie dan hoor ik deze graag en zeker mijn code kan stukker korter maar weet helaas niet hoe.

PS heb jij de laatste bijlage ook werkend gezien om te kijken wat ik bedoel.
Alle bestanden dienen dan wel open te staan

Groet en bedankt voor de interesse in min ijn vraag

HWV
 
Hallo,

Ik ben zo vrij geweest om je bestand iets te veranderen.

In plaats van een Combobox met de naam van een textbox en de functionaliteit van een Commandbutton heb ik gewoon een commandbutton geplaatst.
Deze commandbutton zet de gegevens in een listbox neer.
Als je een regel selecteert in die Listbox dan kan je die regel verwijderen door vervolgens op de knop er boven te klikken.
Ik pretendeer niet dat het bestand klaar is maar je zou wel wat gewonnen hebben op het aantal code.
Daar valt overigens nog veel meer winst te boeken maar dat had je al begrepen.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Ok bedankt

Beste ,

Ik ga ermee aan de slag.

Ik meld me weer als ik er niet verder mee kom

Bedankt voor de aangeboden hulp

HWV
 
Beste Roncancio,

Thuis gekomen en er gelijk mee aan de gang gegaan.
Ziet er goed uit enkel roept het een aantal vragen op.

1) kan je de kolommen in de listbox een breedte meegeven
2) ik had er een kolom naast staan waar ze het aantal in kunnen vullen, hoe kan ik dit doe in de listbox.
3) als ik de gegevens verder uitwerk, kan ik deze dan zonder het in beeld te brengen uitprinten, mailen, en opslaan, dus vanuit de userform.

Je ziet er zijn nog een hoop vragen, maar vind het erg leuk om te doen.
Zoals je gezien heb kan er aan de code veel veranderd worden maar zover gaat mijn kennis niet ik was la blij dat het werkte, maar goed ik hoop dan ook dat ik op de steun van de forum leden mag blijven rekenen om hier verder mee te komen.

Groet HWV
 
Code:
Private Sub CommandButton1_Click()
  For j=1 to 24
    With Me("Txt_orderregel" &j)
       If .Text = "" Then
         .text= Txt_ID.Value
         Me("Txt_orderregelOmschrijving" & j).Text = Txt_Omschrijving.Value
         Me("Txt_orderregelEenheid" & j).Text = Txt_Verpakt.Value
         Exit For
       End If
    End With
  Next
End Sub
 
Verder gegaan

Beste,

Private Sub CommandButton1_Click()
For j=1 to 24
With Me("Txt_orderregel" &j)
If .Text = "" Then
.text= Txt_ID.Value
Me("Txt_orderregelOmschrijving" & j).Text = Txt_Omschrijving.Value
Me("Txt_orderregelEenheid" & j).Text = Txt_Verpakt.Value
Exit For
End If
End With
Next
End Sub

Ik krijg helaas een foutmelding op regel
Code:
 For[COLOR="Red"][B] j[/B][/COLOR]=1 to 24

Met de code van Roncancio ben ik ondertussen verder gegegaan maar stuit tegen het volgende aan:
Voor het wegschrijven uit de listbox gebruik ik het volgende :
Code:
Private Sub CommandButton3_Click()
Dim i As Integer

For i = 0 To ListBox1.ListCount - 1
    If i + 11 > 100 Then Exit Sub
    ListBox1.Selected(i) = True
    Sheets("orderbon").Cells(i + 17, 2) = (CStr(Format(ListBox1.text, "")))
Next i
End Sub

En de breedte instellen van de kolommen met de volgende code in totaal:
Code:
Private Sub Cmd_OK_Click()
    On Error Resume Next
    Dim lAantal As Long
    lAantal = ListBox1.ListCount
[COLOR="red"]    Me.ListBox1.ColumnWidths = "40;320;50;[COLOR="blue"]50[/COLOR]"[/COLOR]
    ListBox1.AddItem
    ListBox1.List(lAantal, 0) = Cbo_Product.Value
    ListBox1.List(lAantal, 1) = ComboBox1.Value
    ListBox1.List(lAantal, 2) = oRng.Offset(0, 27).Value
  [COLOR="Blue"]  ListBox1.List(lAantal, 3) = Combo_aantal.Value[/COLOR]
End Sub

Wat nu niet wil lukken is een textbox koppelen ik probeer het met de volgende code maar werkt niet :
Code:
 [COLOR="Blue"]  ListBox1.List(lAantal, 3) = Combo_aantal.Value[/COLOR]

Zodra ik deze regel verander in :
Code:
  [COLOR="Blue"]  ListBox1.List(lAantal,[B][COLOR="Red"] 2[/COLOR][/B]) = Combo_aantal.Value[/COLOR]

Deze vervangt wel de vorige code en plaats de gegevens op de juiste plek. dus ik krijg wel artikelnummer, omschrijving en eenheid of de Combo_aantal maar geen 4 kolomen hoe kan ik dit aanpassen.

groet HWV
 
Je moet bij de eigenschappen van de listbox het aantal kolommen (ColumnCount) aanpassen naar het aantal kolommen wat je wilt hebben.
Het staat nu op 3.

Met vriendelijke groet,


Roncancio
 
Beste,

Is gelukt, moet je echt net even weten maar ja dat is met alles.
Nu kom ik bij het probleem dat ik kolom 4 van de listbox wil wegschrijven in mijn sheet op kolom 14

Het stomme is als ik mijn code aanpas naar 14:
Code:
For i = 0 To ListBox1.ListCount - 1
    If i + 11 > 100 Then Exit Sub
    ListBox1.Selected(i) = True
    Sheets("orderbon").Cells(i + 17, [COLOR="Red"]14[/COLOR]) = (CStr(Format(ListBox1.text, "")))
Next i

Dan plaats hij kolom 1 uit de listbox op kolom 14v an van de excel sheet ik kan het niet snappen wat ik nu verkeerd doet om kolom 4 uit de listbox op kolom 14 te krijgen

Groet HWV
 
Code:
For i = 0 To ListBox1.ListCount - 1
    If i + 11 > 100 Then Exit Sub
    ListBox1.Selected(i) = True
    Sheets("orderbon").Cells(i + 17, 14) =    [B] ListBox1.List(i, 3)[/B]
Next i

Ik heb het vetgedrukte toegevoegd.
Het is ongetest maar zou het moeten doen.

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,

Bedankt voor de oplossing, hier kan ik verder mee bouwen.
Op deze manier kan ik mijn formulier optimaliseren, om tot een juist resultaat te komen.

Enkel gaande weg loop je elke keer weer tegen problemen aan waar je eerst op zoek gaat op het web, veel dingen probeer en veel er over gaat lezen.

Nu loop ik tegen iets aan, als ik de comboboxen leeg maak
Code:
Private Sub Cmd_OK_Click()
    On Error Resume Next
    Dim lAantal As Long
    lAantal = ListBox1.ListCount
    Me.ListBox1.ColumnWidths = "40;320;80;50"
    ListBox1.AddItem
    ListBox1.List(lAantal, 0) = Cbo_Product.Value
    ListBox1.List(lAantal, 1) = ComboBox1.Value
    ListBox1.List(lAantal, 2) = oRng.Offset(0, 27).Value
    ListBox1.List(lAantal, 3) = Txt_AantalBesteld.Value
[COLOR="Red"][B]    Cbo_Product.Clear
    ComboBox1.Clear[/B][/COLOR]
End Sub

Hij maak ze wel leeg, maar ik kan geen nieuw artikel meer selecteren ivm dat de er geen producten meer in de lijst staan

Mis ik iets in de code !

Groet HWV
 
Met Clear maak je ze inderdaad leeg.
Maar als je alleen maar het veld leeg wilt hebben, zet je de Value op ""

Dus bijvoorbeeld:

Code:
Combobox1.Value = ""

De lijst in de combobox is nog wel aanwezig maar het vakje van de combobox is leeg.

Met vriendelijke groet,


Roncancio
 
Gelukt

Het is inderdaad gelukt, bedankt

Zoals eerder aangegeven loop ik tegen meerdere fouten aan en vragen.

1) zodra ik een artikelnr. in tik bv 21 veranderd deze in 12, hij laat wel alles in de lijst zien maar zodra ik deze selecteer dan krijg ik de foute waarde. Dit geld ook voor de omscrijving van de artikelen ?

2) In de listbox laat hij de eenheden niet meer zien, wel neemt hij deze over naar de orderbon, hij heeft het wel gedaan maar ik zou niet weten wat ik nu verkeerd heb gedaan.

3) valideren op een excel blad weet ik hoe dat moet, maar in een userform nog niet ik wil de accountmanagers laten kiezen vanuit een lijst of zelf laten vullen in de daarvoor bestemde veld, Hoe kan ik valideren naar een werkblad. dit ook voor de binnendienst maar daar kom ik dan wel achter.

4) Als ik de listbox over heb gezet naar de excel sheet en dan eruit gaat via annuleren dan blijf de lixbox gevuld , hoe krijg ik deze weer leeg ?

Groet HWV
 

Bijlagen

1 en 2 zijn aangepast in het bijgevoegde bestand.
3. begrijp ik niet helemaal aangezien een combobox al een lijst heeft waar men uit kan kiezen.
4. Hier kan je wel Clear gebruiken. Dus Listbox1.Clear.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Helaas

Roncancio,

Ik moet wel zeggen dat ik blij ben met de hulp.

1. Ik kreeg eerst nog wel een foutmelding met als ik 21 invulde , maar dit lag aan het artikelbestand ivm ik dubbele omschrijvingen had gebruikt en daar zoekt hij ook op

3. Ik moet dus weer dezelfde opbouw maken voor de accountmanagers en de binnendienst gebruiken. Dit ga ik uitproberen
4. De listboxClear heb ik toegepast en deze werkt in deze vorm wel.

Ga weer verder we komen elke keer een stap verder

Groet HWV
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan