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

Data wegschrijven userform

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo ik heb in mijn file een nieuw frm ingevoegd en hierop moeten 5 txt's komen, waarvan de data respectievelijk moeten weggeschreven worden naar A20, A23, A26, A29 en A30
Ik heb nu een test gedaan met 2 txt's met de volgende code
Code:
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    
    For Each c In Sheets("LigaDataBase").Range("A19")
        For i = 1 To 1
            c.Offset(i) = Me("txtLiga").Text
        Next
    Next
    
    For Each c In Sheets("LigaDataBase").Range("A22")
        For i = 1 To 1
            c.Offset(i) = Me("txtSeizoen").Text
        Next
    Next
    
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
    Next
    
    'Unload Me
    Application.ScreenUpdating = True
End Sub
en dit werkt perfect, maar dan moest ik wel elke txt een eigen naam geven.
Nu is mijn vraag is dit ook mogelijk met elke txt dezelfde naam+nummer. Ik wou die voor mijn duidelijkheid noemen "txtLigaGegevens1",............2,...........3, enz.
Dan moet ik maar één code geven in plaats van 5.
Heb reeds al het één en ander geprobeerd maar het lukt niet.

Grtjs.
Armand
 
Code:
Private Sub CommandButton1_Click()
Dim lRij As Long
Dim iTel As Integer
    For iTel = 1 To 5
        lRij = WorksheetFunction.Choose(iTel, 20, 23, 26, 29, 30)
        Range("A" & lRij).Value = Me.Controls("txtLigaGegevens" & iTel).Value
    Next

End Sub
Moet die 30 geen 32 zijn?
In dat geval:


Code:
Private Sub CommandButton1_Click()
Dim iTel As Integer
    For iTel = 1 To 5
        Range("A" & 17 + (iTel * 3)).Value = Me.Controls("txtLigaGegevens" & iTel).Value
    Next

End Sub

Met vriendelijke groet,


Roncancio
 
Bedankt Roncario,
De code werkte eerste niet, maar ik moest er nog With en End With vergeten bij te zetten
En ja het is 32 in plaats van 30, heb dus de tweede code gebruikt.

Heb nog een vraagje over een formule, maar zal daar een nieuw draadje voor openen en deze opgelost zetten.

Grtjs.
Armand
 
Hallo Roncario,

Ben iets te snel geweest.
Heb nu deze code staan
Code:
Private Sub cboWegschrijven_Click()
    Application.ScreenUpdating = False
    
    With Sheets("LigaDataBase")
        For iTel = 1 To 4
            Range("A" & 17 + (iTel * 3)).Value = Me.Controls("txtLigaGegevens" & iTel).Value
        Next
    End With
    
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
    Next
    
    Application.ScreenUpdating = True
End Sub
En alles wordt netjes weggeschreven, maar alleen wanneer de sheet("LigaDataBase") is geselecteerd.
Mijn file start op met een StartSheet van waaruit de verschillende frm's worden aangeroepen, terwijl dus de andere sheets niet zichtbaar zijn door de tabs niet weer te geven.
En dan wordt er niets weggeschreven.
Het aantal txt's op het frm is 4 in plaats van 5

Grtjs.
Armand
 
Laatst bewerkt:
Code:
With Sheets("LigaDataBase")
        For iTel = 1 To 4
            [COLOR="#FF0000"].[/COLOR]Range("A" & 17 + (iTel * 3)).Value = Me.Controls("txtLigaGegevens" & iTel).Value
        Next
    End With
 
Bedankt Rudi,

Werkt nu wel.
Heb nog één probleempje.
In de txt breng ik als datum 2/9/2012 in en op de sheet komt deze dan op Amerikaanse wijze te staan namelijk 9 februari 2012

Grtjs.
Armand
 
Code:
Private Sub cboWegschrijven_Click()
    Application.ScreenUpdating = False
    
    With Sheets("LigaDataBase")
        For iTel = 1 To 4
            .Range("A" & 17 + (iTel * 3)).Value = IIf(iTel <> 1, Me.Controls("txtLigaGegevens" & iTel).Value, _
                    Format(Me.Controls("txtLigaGegevens" & iTel).Value, "dd/mm/yyyy"))
        Next
    End With
    
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            ctrl.Text = vbNullString
        End If
    Next
    
    Application.ScreenUpdating = True
End Sub

Wijzig bij iTel <> 1 de 1 in het nr v/d textbox. Het is ook mogelijk dat je de dd en mm moet wisselen van plaats, dat moet je maar even testen.
 
Bedankt Rudi,

Ga het straks uitwerken.
Vrouwtje wordt ongeduldig om boodschappen te doen.
Laat wel iets weten

Grtjs.
Armand
 
Hallo Rudi,

Bedankt voor de oplossing, werkt perfect.
Ik heb wel de dag en maand van plaats moeten wisselen.

Grtjs.
Armand
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan