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

Invullen regels met VBA

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

Imod

Gebruiker
Lid geworden
13 nov 2003
Berichten
481
Het invullen van cellen in regels.
Dit met inputbox per cel en met keuzelijsten.
Invullen cellen lukt wel(zie knop) maar de combinatie met keuzelijst??
Dit alles VBA.
Wie kan er helpen?

Uitleg zie bijlage
 

Bijlagen

Het is mij niet helemaal duidelijk wat je wilt :( .
Kun je dit al niet bereiken met valideren?
 
Hallo Jan,

Zo heb ik het nu ook maar de invulregel is lang (40 cel) en onoverzichtelijk,
Het leek mij wel handig dat je per regel - cel voor cel achter elkaar kunt invullen
met een inputbox.
Maar er zijn ook cellen bij waar keuze's gemaakt moeten worden.
Daarvoor zou dan een keuzelijst in zo'n schermpje moeten komen.

Ik zou geholpen zijn met de VBA code van zo'n schermpje met daarin een keuzelijst die zijn gegevens haald uit een bepaald bereik (dat een naam heeft)
Deze code moet tussen de code staan die ik gemaakt heb in de 1e bijlage.
 

Bijlagen

  • inputbox.jpg
    inputbox.jpg
    15,2 KB · Weergaven: 124
Imod,

In de vorige versie had ik geen rekening gehouden met het feit dat je een cel leeg wilt laten.
In deze versie kun je als je niets invult in de InputBox klikken op OK,Annuleren of Enter.
 

Bijlagen

Hallo Luc;

Deze code:
nh = InputBox("Vul nokhoogte in - Enter is leeg")
If nh = "" Then
ActiveCell.Offset(0, 7) = ""
Else
ActiveCell.Offset(0, 7) = nh
End If

Geldt voor het vullen van 1 cel per knop per regel en geldt steeds weer als je de knoppen in A kopieert naar beneden - als ik het goed heb???
ActiveCell.Offset(0, 7) = nh betekent denk ik zoveel cellen naar rechts moet ingevuld worden - dit kan je uitbreiden net zover als je wilt???

Nu nog een aantal vragen:
Range("A" enz - als ik A wijzig in "B" dan moeten de knoppen in kolom B staan???
Ik heb getest - als ik een knop willekeurig plaats op een bepaalde regel dan werkt die op die regel(knop regel 4 zet ik op regel 7 in kolom K) regel 7 wordt ingevuld. (dit is goed - makkelijk te kopieeren)
-----------------------
Nu heb je met valideren de keuze cellen gemaakt, maar mijn grote vraag is eigenlijk
kan dit ook in een schermpje door VBA??
Zoals nu is het dat er telkens 1 cel wordt overgeslagen door VBA maar mijn bedoeling is dat ik Cel B in vul met VBA daarna een schermpje voor cel C met een keuze lijst (VBA) met de gegevens uit de naam "lijst1" - daarna cel D invullen - dan weer cel E keuzelijst (VBA) met gegevens uit "lijst 2" - enz. - Ik weet niet of dit kan??
-----------------------
Schermpje leeg "OK" = cel leeg - maar "Annuleren" is ook leeg - kan annuleren in elk schermpje ook stoppen met de bewerkingen betekenen?? Alle ingevulde cellen daarvoor mogen ingevuld blijven staan.
 
Imod,

Het volgende staat in Help over de InputBox:

Voorbeeld van de functie InputBox
Dit voorbeeld toont verschillende manieren waarop de functie InputBox kan worden gebruikt om de gebruiker te vragen een waarde in te voeren. Als de x- en y-posities worden weggelaten, wordt het dialoogvenster automatisch gecentreerd voor de desbetreffende assen. De variabele MyValue bevat de ingevoerde waarde als u op OK klikt of op ENTERRETURN drukt. Als u op Annuleren klikt, wordt een tekenreeks met lengte nul als resultaat gegeven.

Of een InputBox een uitrolmenu heeft zoals bij validatie?
Antwoord is nee.

Je zou ook het idee van de InputBoxen kunnen verlaten en alles direct in de cel kunnen typen, met handhaving van de gevalideerde lijsten, ipv in een InputBox, of is dat geen goed idee.
 
Het invullen van cellen handmatig met validatie cellen dat heb ik nu.
Het is wel 40-50 cellen achter elkaar die elk weer wat aansturen, maar het is niet erg overzichtelijk.
Als dit "Of een InputBox een uitrolmenu heeft zoals bij validatie? Antwoord is nee." niet kan dan wil het niet wat ik wil.
Het is ook niet mogelijk met een Userform met een keuzelijst?? die je laat opkomen na een inputbox?? zomaar een vraag indien nee dan zal ik de vraag sluiten.
 
Imod,

Het is niet onmogelijk een UserForm te maken met afwisselende TextBoxen en ComboBoxen en een CommandButton die de invoer verzorgt.
 
Hallo Luc;

Ik heb je opzet gezien en volgens mij kan ik dit goed gebruiken - alles per regel in 1 scherm - die je steeds weer kan gebruiken voor een volgende regel.
Ik begrijp hoe dit alles werkt en kan ik hem aanmaken op mijn eigen sheet.
----------
Een paar vragen - kleur knoppen labels hoe wijzig je deze - er is geen keuze mogelijk - moet je het kleur nr in typen?? en zoja waar haal je de kleur nr. vandaan??
----------
Deze Userform1 werkt op een blok cellen, als ik meerdere blokken in 1 sheet heb wat wijzigt er dan allemaal?(Userform2)
De knoppen op de Userform kan ik die gewoon kopieren?? (wel aantal aanpassen/aanvullen in Invoer_userform en de Offset)

mvg Imod
 
Imod zei:
Hallo Luc;

Ik heb je opzet gezien en volgens mij kan ik dit goed gebruiken - alles per regel in 1 scherm - die je steeds weer kan gebruiken voor een volgende regel.
Ik begrijp hoe dit alles werkt en kan ik hem aanmaken op mijn eigen sheet.

Je kunt ook je eigen blad naar dit programma kopëren.
Zelf aanmaken kan ook,maar dat is een hele cursus. (Google voor Userform kopiëren)
----------
Een paar vragen - kleur knoppen labels hoe wijzig je deze - er is geen keuze mogelijk - moet je het kleur nr in typen?? en zoja waar haal je de kleur nr. vandaan??

Met Alt+F11 kom je in VBEditor. Aande linkerkant zie je het venster "Eigenschappen"
Zoniet,klik op F4.
Klik op een knop of textbox in de UserForm.
Bovenin het venster Eigenschappen zie je BackColor. Klik op die tekst en ernaast komt een pijlknopje.Klik daar op en kies voor palet. Nu klik je op een kleur en je knop of textbox neemt hem over.
Probeer ook andere eigenschappen eens uit.
----------
Deze Userform1 werkt op een blok cellen, als ik meerdere blokken in 1 sheet heb wat wijzigt er dan allemaal?(Userform2)

De macro achter de knop "Invoeren" op de Userform werkt met alle cellen van kolom A.
Dat is van A1 t/m A65536. Dus je kunt heel wat blokken bewerken

De knoppen op de Userform kan ik die gewoon kopieren?? (wel aantal aanpassen/aanvullen in Invoer_userform en de Offset)

Zoals boven beschreven kun je in het venster Eigenschappen ook de tekst van knoppen wijzigen,de tekstkleur en grootte.
Knoppen en alle Controls die op een UserForm staan kun je kopiëren en plakken op de UserForm.Je moet dan wel code schrijven voor die control(s).
Al met al een leuke studie om aan te pakken.
Hopelijk kun eerst vooruit.

mvg Imod
 
Hallo Luc;

"Deze Userform1 werkt op een blok cellen, als ik meerdere blokken in 1 sheet heb wat wijzigt er dan allemaal?(Userform2)"

Wat ik bedoel is dat de volgorde en invoer van cellen totaal anders is van een tweede blok cellen - ook de invoer van de ComboBoxen wijzigd.
 
Imod,

Zie je vorige vraag.

Tussen de regels van jouw vorige vraag heb ik enkele antwoorden gezet.
Misschien heb je dat over het hoofd gezien.

En wat ik op blad1 heb gezet zijn testregels.
Je kunt alles op blad1 deleten.

Nog een ZIP bijgevoegd
 

Bijlagen

Hallo Luc:

Ik denk dat je mij niet begrijpt;
1e blok cellen - 40 cellen lang - 37 tekst cellen en 3 ComboBoxen waarin je keuze hebt uit letters abcd - 1234- ABCD.(als voorbeeld)

Volgende blok cellen (Userform2) 30 cellen lang 20 tekst cellen en 10 ComboBoxen met invoer keuze uit bv 10 soorten deuren - 8 soorten glas - enz.

Met andere woorden de invoer wijzigd per blok - ook de volgorde van tekst en combiboxen wisseld en de invoer combiboxen is totaal anders.
 
Imod,

Het begrijpen gaat al iets beter.
Wil je in de bijlage je wensen vermelden en retourneren?
 

Bijlagen

Hallo Luc;

Het invullen van de code dat lukt mij wel,
Waar het mij om gaat is de rand code voor 2 of meer Userform's - wat wijzigt er als er niet 1 maar 2 of 3 verschillende Userform's worden toegepast.
Wat wijzigt aan hieronder
-----------
Module
Sub Invoeren_Formulier()
UserForm1.Show
End Sub
-----------
Userform
Private Sub CommandButton2_Click()
Unload Me
End Sub
-----------
Private Sub UserForm_Initialize()
Dim i As Long
With UserForm1
.Move 100, 350
End With
For i = 1 To 25
Me.Controls("TextBox" & i) = ""
Me.Controls("ComboBox" & i) = ""
Next i
TextBox1.SetFocus
End Sub
------------------------
Private Sub CommandButton1_Click()
Dim i As Long
Dim n As Long
Dim strInvoer As String
On Error GoTo Einde
strInvoer = InputBox("Voer de begincel van kolom A in. bv.A4 of A9 enz..")
If Left(strInvoer, 1) <> "A" Then GoTo Einde
Range(strInvoer).Select
ActiveCell.Offset(0, 1) = TextBox1
ActiveCell.Offset(0, 2) = ComboBox1
enz
UserForm_Initialize
Exit Sub
Einde:
MsgBox "Je het geen A-cel ingevuld of geannuleerd." & vbCrLf _
& "Wil je stoppen, klik dan op Sluiten."
UserForm_Initialize
End Sub
 
Imod,

Eerst antwoord op mijn vragen in de vorige bijlage, dan komen de antwoorden op je laatste vraag vanzelf naar je toe.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan