Envoi automatique de textbox dans cellule

Bonsoir

Je souhaiterais un peu d'aide pour le code suivant:

Private Sub CommandButton1_Click()

Dim ligne As Integer
    Dim I As Integer
 Dim j As Integer

flag = 1
    I = 1
    ligne = -1
    With Sheets("RCM")
        Do While (.Range("D" & I) <> ComboBox29.Value And .Range("D" & I) <> Empty)
        I = I + 1
        Loop
        If (.Range("D" & I).Value = ComboBox29.Value) Then
            ligne = I
        End If
    End With

    If (ligne > 0) Then
        With Sheets("RCM")

 For j = 1000 To 1066

 .Range(j + 6 & ligne) = Me.Controls("textbox" & j)
 Next j

End With

 End If

UserForm2.Hide
Unload UserForm2

End Sub

Voici ce que j'essaie de faire: le formulaire me permet de compléter un tableau déjà existant. Il complète les colonne à partir de la colonne 7 la ligne désignée par la combobox29. la textebox 1000 va dans la colonne 7, la textbox1001 dans la 8 etc... jusque la 1066. Ceci pour gagner du temps et de la place dans l'écriture du code. J'arrive à envoyé le contenu cellule par cellule donc la seule partie nouvelle sur mon code existant est celle là:

For j = 1000 To 1066

 .Range(j + 6 & ligne) = Me.Controls("textbox" & j)
 Next j

je ne sais pas si il est bon ni ou le placer exactement.

merci de votre aide

Bonsoir,

Un test (non testé)

Private Sub CommandButton1_Click()

Dim Ligne As Long
Dim I As Long
Dim J As Long
Dim oB As Object

flag = 1
I = 1
Ligne = -1

With Sheets("RCM")
    Do While (.Range("D" & I) <> ComboBox29.Value And .Range("D" & I) <> Empty)
        I = I + 1
    Loop
    If (.Range("D" & I).Value = ComboBox29.Value) Then
        Ligne = I
    End If
End With

If (Ligne > 0) Then
    J = 1000
    With Sheets("RCM")
        For Each oB In UserForm2.Controls
            If oB.Name = "TextBox" & J Then
                .Cells(Ligne, J - 993).Value = oB.Value
                J = J + 1
            End If
        Next
    End With
End If

UserForm2.Hide
Unload UserForm2

End Sub

@ bientôt

LouReeD

super ça marche merci

Merci à vous pour le merci et d'avoir testé le code !

@ bientôt

LouReeD

j'ai une petite question: comment le code sait quand s'arreter?

je m'explique j'ai des textbox de 1000 à 1060 et d'autre de 3000 à 3060. elles devront etre les une à coté des autres. est ce que le code va s'arreter à 1060 car 1061 existe pas et je le relance pour qu'il refonctionne à 3000 (biensure en reclaculant le numero de colonne). ou est ce qu'il va me l'envoyer colonne 3000 (si c'est possible) avec que des cases blanches entre elles?

En fait le code ne s'arrête pas...

le For each oB In Userform2.Contrôls

scrute tous les contrôles du Userform et la condition ="TextBox"&J est testée

donc s'il y a un TextBox3000 il sera pris en compte donc petite ligne à rajouter :

If (Ligne > 0) Then
    J = 1000
    With Sheets("RCM")
        For Each oB In UserForm2.Controls
            If oB.Name = "TextBox" & J Then
                .Cells(Ligne, J - 993).Value = oB.Value
                J = J + 1
                If J = 1067 Then Exit For
            End If
        Next
    End With
End If

du coup dès qu'on "dépasse" le textbox1066 on sort du test !

@ bientôt

LouReeD

super merci encore

j'ai encore plein de chose à apprendre


il s’arrête à la 1006 sais tu pourquoi?

une faute de frappe ?

j'ai fais un copier coller de ton code et j'ai revérifier le nom de mes textbox

il y a parfois des choses étranges en informatique lol parfois j'ai un bug et le lendemain il disparait pourtant je n'ai touché à rien lol... ou l'inverse (mais la j'aime moins lol)

en tout cas encore merci

du coup ça marche ? ou pas ?

bonne soirée et @ bientôt

LouReeD

ça marche pour les textbox 1000 à 1006 (qui sont l'une en dessous de l'autre (je simule un tableau avec des textbox)) la 1007 n'écris rien (c'est la première de la seconde colonne)

merci bonne nuit à toi aussi

il faudrait faire un "pas à pas" pour voir où ça coince...

@ bientôt

LouReeD

j'ai réussi à faire un fichier allégé sans que ça plante tout mais du coup y a plus grand chose dans le fichier lol

le voici

Désolé,

Hier j'étais complétement à coté de la plaque !!!

voici LE code :

    If (Ligne > 0) Then
        With Sheets("RCM scellés + result")
            For compteur = 1 To 66
                .Cells(Ligne, compteur + 6).Value = Controls("TextBox" & compteur + 1000).Value
            Next
        End With
    End If

@ bientôt

LouReeD

super ça marche merci j'ai juste du changé 1000 par 999 sinon j'obtenais 1001 au lieu de 1000 car il faisait 1000+1

Ok bonne journée

et .....

@ bientôt

LouReeD

Bonne journée à toi aussi et encore merci

Rechercher des sujets similaires à "envoi automatique textbox"