Lier des textboxes a des cellules excel sur différentes feuilles

ToBee Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 28 septembre 2012 - 15 mars 2011 à 12:23
ToBee Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 28 septembre 2012 - 15 mars 2011 à 13:55
Bonjour bonjour,

Je cherche à lier mes textboxes à des cellules excel à leur création (les textboxes se créent suivant certains paramètres après un clic).

J'ai lu qu'il fallait utiliser .controlsource ou bien un OLEobject pour avoir la propriété .linkcell mais je n'y arrive pas.
Voici mon code qui foire uniquement pour la liasion Txtbx <=> cellule excel
For i = i To NbCol

    Set TextBox = UserForm2.Controls.Add("Forms.TextBox.1")
    Lig = Worksheets(Feuille).Range("A65536").End(xlUp).Row + 1
    Set Merde = Worksheets(Feuille).Cells(Lig, i)

    If i < 25 Then
      With TextBox
          .Name = TextBoxName
          .Top = 18 * i
          .Width = 66
          .Height = 15.75
          .Left = 80
          '.ControlFormat.LinkedCell = Merde
        End With
.
.
.
.
.
(etc...)


Si quelqu'un peut m'aiguiller ca serait sympa !

1 réponse

ToBee Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 28 septembre 2012
15 mars 2011 à 13:55
Sinon j'ai la solution d'inscrire le contenu des textboxes sur les feuilles avec un clic mais j'ai un problème de compteur.
Quand la procédure change de feuille le numéro de colonne ne revient pas à zéro.

Je vous montre le code :
[mes feuilles s'appellent Charcuterie, Viande et Poulet ; mes textboxes sont créées avec les mêmes noms suivant des checkboxes en début de form]


Public Sub Bob_Click()

Dim Col, Lig, i As Integer
Dim Ctl As Control
i = 1
Col = 0  
    For Each Ctl In UserForm2.Controls
        If TypeName(Ctl) = "TextBox" Then
            Col = 1 + Col
            Select Case Ctl.Name
                Case "Charcuterie":
                Lig = Worksheets(Feuille).Range("A65536").End(xlUp).Row + 1
                Worksheets("Charcuterie").Cells(Lig, Col) = Ctl.Text
                Case "Viande":
                Lig = Worksheets(Feuille).Range("A65536").End(xlUp).Row + 1
                Worksheets("Viande").Cells(Lig, Col) = Ctl.Text
                Case "Poulet":
                Lig = Worksheets(Feuille).Range("A65536").End(xlUp).Row + 1
                Worksheets("Poulet").Cells(Lig, Col) = Ctl.Text
            End Select
        End If
    Next Ctl
End Sub
0
Rejoignez-nous