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

Hulp bij For Next loop

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

pd1lg

Gebruiker
Lid geworden
10 jun 2015
Berichten
142
Besturingssysteem
Windows 11
Office versie
Office 365
Ik heb dit stukje gevonden in het forum. Ik kan dit goed gebruiken, maar moet 86 TextBox maken.
Volgens mij moet dat toch kunnen met een For Next loop. Maar ik kom er niet uit.
Iemand die me helpen kan?

HTML:
 With Sheets("Database").ListObjects(1)
   For x = 1 to 86 
        .DataBodyRange(.ListRows.Count + 1, 1).Resize(, 21) = Array(TextBox & x)
    Next x
        .Range.Sort .ListColumns(1), 1, , , , , , xlYes
        .Range.HorizontalAlignment = xlRight
    End With

Groet Lambert
 
Misschien handig als je de link plaats waar je het gevonden heb.
 
Deze code maakt geen tekstvakken.
Met een goed ontwerp heb je nooit meer dan 20 tekstvakken nodig.
 
Misschien handig als je de link plaats waar je het gevonden heb.

Waarom?

Deze code maakt geen tekstvakken.
Met een goed ontwerp heb je nooit meer dan 20 tekstvakken nodig.

Beste snb,

Per wedstrijd heb ik 16 spelers, 16 speler ID, 16 Moyennes, 16 Scores en 16 punten. hiervoor ben ik tekstvakken voor nodig.
Een tekstvak voor welke wedstrijd, een tekstvak voor de datum, een tekstvak voor de thuis spelende club en uit spelende club en twee tekstvakken voor de scores.
Ik heb geen idee hoe ik het anders kan maken. Misschien heb jij een oplossing?

Bekijk bijlage Biljart-Database(Listobject).xlsb

Dit heb ik tot nu toe, in elkaar geknutseld.

Groetn Lambert
 
Laatst bewerkt door een moderator:
Gebruik een tabstrip of multipage.
 
Dit begrijp ik niet, je hebt al een userform met de nodige textboxen.
Ik denk eerder dat je wegschrijven bedoelt.

Dat is de verkeerde programma. Zie boven!
Ik kon beter met listobject gaan werken, werd mij gezegd.

Sorry, ik had de andere vraag niet als opgelost aangeven.
 
Laatst bewerkt:
Gebruik een tabstrip of multipage.

Geen idee wat je bedoelt, snb.

Ik moet er wel bij vermelden dat er mensen met dit programma gaan werken, die totaal niets met computers hebben. Dus moet simpel blijven.
 
Laatst bewerkt:
Ook jouw VBEditor heeft een F1 knop.
 
Ik dacht dat dit een forum was om elkaar te helpen. Maar een F1 knop, daar heb ik nogal wat aan. Ik begin behoorlijk geïrriteerd te raken van jullie opmerkingen.
Ik ben een leek op gebied van excel, en wil graag meer leren.
 
Dit begrijp ik niet, je hebt al een userform met de nodige textboxen.
Ik denk eerder dat je wegschrijven bedoelt.

Dank je gast0660, heb net gekeken naar jouw bestand. werkt mooi. Nu nog proberen te begrijpen hoe het werkt.
Het stukje programma wat ik geplaatst had blijkt dus helemaal niet te doe wat ik dacht.

Je hebt er behoorlijk wat aan gedaan, zie ik nu.
Maar al die T_1 t/m T_86, had dat niet met een for next loop gekunt?
 
Laatst bewerkt:
Ik zit in een behoorlijke dip, en daardoor kan ik nog wel eens raar reageren. Excuses hiervoor.
Ik heb me net het boek excel VBA van Wim de Groot besteld. En ga daar maar eens in lezen.
Dank voor jullie support.
 
Je zou het op deze manier in een lus kunnen zetten.

Vervang
Code:
Private Sub Cmd_00_Click()
  With Sheets("Database")
    iRow = .Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
    .Cells(iRow, 1).Resize(, 87).Value = Array(T_00.Value, T_01.Value, T_02.Value, T_03.Value, T_04.Value, T_05.Value, T_06.Value, T_07.Value, T_08.Value, T_09.Value, T_10.Value _
    , T_11.Value, T_12.Value, T_13.Value, T_14.Value, T_15.Value, T_16.Value, T_17.Value, T_18.Value, T_19.Value, T_20.Value _
    , T_21.Value, T_22.Value, T_23.Value, T_24.Value, T_25.Value, T_26.Value, T_27.Value, T_28.Value, T_29.Value, T_30.Value _
    , T_31.Value, T_32.Value, T_33.Value, T_34.Value, T_35.Value, T_36.Value, T_37.Value, T_38.Value, T_39.Value, T_40.Value _
    , T_41.Value, T_42.Value, T_43.Value, T_44.Value, T_45.Value, T_46.Value, T_47.Value, T_48.Value, T_49.Value, T_50.Value _
    , T_51.Value, T_52.Value, T_53.Value, T_54.Value, T_55.Value, T_56.Value, T_57.Value, T_58.Value, T_59.Value, T_60.Value _
    , T_61.Value, T_62.Value, T_63.Value, T_64.Value, T_65.Value, T_66.Value, T_67.Value, T_68.Value, T_69.Value, T_70.Value _
    , T_71.Value, T_72.Value, T_73.Value, T_74.Value, T_75.Value, T_76.Value, T_77.Value, T_78.Value, T_79.Value, T_80.Value _
    , T_81.Value, T_82.Value, T_83.Value, T_84.Value, T_85.Value, T_86.Value)
  End With
door
Code:
Private Sub Cmd_00_Click()
  With Sheets("Database")
    iRow = .Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
      For i = 0 To 86
        .Cells(iRow, 1).Offset(, i).Value = Me("T_" & Format(i, "00")).Value
      Next
  End With
 
Laatst bewerkt:
Dank je Jack, dit zocht ik dus.
 
Laatst bewerkt door een moderator:
Cel voor cel wegschrijven is traag.

Zet het klaar in het geheugen d.m.v. een array en schrijf het in een keer weg.
Ook werk je met een tabel (listobject).
Daar kan Vba ook mee omgaan.

Code:
Private Sub Cmd_00_Click()
ReDim arr(0, 86)
  With Sheets("Database").ListObjects(1)
    .ListRows.Add
      For j = 0 To 86
        arr(0, j) = Me("T_" & Format(j, "00")).Value
      Next
  .DataBodyRange.Cells(.ListRows.Count, 1).Resize(, 87) = arr
End With
 
Laatst bewerkt:
Vraagje Harry...om de datum goed te krijgen mag je dat zo oplossen?
Code:
      For j = 0 To 86
          arr(0, j) = Me("T_" & Format(j, "00")).Value
      Next
     arr(0, 2) = CDate(arr(0, 2))
 
Ja hoor Jack; prima oplossing.
 
Beste pd1lg,

Bij een directe reactie is een quote niet nodig :)
Hiervoor kan simpelweg de "reageer op bericht" knop gebruikt worden.

m.v.g
Rick van Lieshout
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan