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

waarde textbox in juiste cel plaatsen

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Voor het wegschrijven van de waarde uit verschillende textboxen gebruik ik de volgende code
Code:
Private Sub cmbWegschrijven_Click()
    Application.ScreenUpdating = False
    For Each c In Sheets("dbDeelnemers").Range("B2:B61")
        If c.Value = cboNaam.Value Then
            For i = 1 To 10
                c.Offset(, i) = Me("txtNr" & i).Text
            Next
        End If
    Next
cboNaam.Value = ""
Application.ScreenUpdating = True
End Sub
en worden dus de waarden wegschreven van links naar rechts.
Nu heb ik een nieuw frm waarop 6 txtboxen staan en deze waarden zouden moeten weggeschreven worden van boven naar onder in de juiste cellen
nl : txt1 naar D2, txt2 naar D3, txt3 naar D4, enz....
IK weet wel dat dat wegschrijven van boven naar onder lukt met
Code:
rw1 = Sheets("dbDeelnemers").Range("B61").End(xlUp).Row + 1
maar hiermee wordt gewoon elke volgende lege cel gebruikt en dan met 1 txt die telkens opnieuw wordt gebruikt
De bedoeling is eigenlijk dus de 6 txt allemaal in één maal in de juiste cellen weg te schrijven

Hopelijk een beetje duidelijk, want ik heb hiervoor nog geen filetje

Grtjs.
Armand
 
Armand,
Offset(, i) gebruik je al om kolommen op te schuiven.
Offset(i) gebruik je om rijen op te schuiven

groet sylvester
 
Laatst bewerkt:
Hallo Sylvester,
Bedankt nogmaals voor je reactie op deze vraag.
Werkt perfect met de volgende code (zonder Option Expilicit)
Code:
Private Sub cboWegschrijven_Click()
    Application.ScreenUpdating = False
        For Each c In Sheets("AlgemeneData").Range("D1")
            For i = 1 To 6
             c.Offset(i) = Me("txtTeam" & i).Text
            Next
        Next
    Application.ScreenUpdating = True
End Sub
Wanneer ik echter de "Option Explicit" wel gebruik krijg ik met de volgende code de foutmelding
"For Each-besturingselementvariabele moet een Variant of Object zijn"
Code:
Private Sub cboWegschrijven_Click()
    Dim c As Integer
    Application.ScreenUpdating = False
        For Each c In Sheets("AlgemeneData").Range("D1")
            For i = 1 To 6
             c.Offset(i) = Me("txtTeam" & i).Text
            Next
        Next
    Application.ScreenUpdating = True
End Sub

Grtjs.
Armand
 
Code:
Dim c As Range, i As Long

Als je maar één cl as range hebt (D1 alleen), kan het zo:
Code:
Private Sub cboWegschrijven_Click()
Dim i As Long
    Application.ScreenUpdating = False
    With Sheets("AlgemeneData").Range("D1")
        If .Value > 0 Then
         For i = 1 To 6
           .Offset(i) = Me("txtTeam" & i)
         Next
      End If
   End With
End Sub
 
Armand,

met "Option Explicit" is het verplicht elke variabele te declareren.

groet sylvester
 
Hallo,
Bedankt voor jullie reactie.
Ik dacht wel dat het iets te maken had met het declareren, maar wist niet goed hoe ik "c" moest declareren.
Eigenlijk als "Range" is toch logisch, niet aan gedacht.
Kunnen we morgen weeral verder.

Wat een fantastisch forum en zeker de medewerkers.

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