Range

sinane123 -  
Iama Messages postés 324 Statut Membre -
Bonjour,
comment peut on réaliser un boucle pour effectuer une suite d'affectations des valeur situées dans une feuille "Bases des données", sachant que la ligne des données est variable, vers une suite de textbox1 to textbox55

Code
Private Sub Button100_Click()
Dim Num As Long
Dim celluletrouvee As Range
Dim ligne As Integer
Dim col As Integer
Dim I As Integer
Dim TxtB As String
'
'
'''Affecter la valeur de textbox1 dans le variable num'''
Num = CSng(UserForm4.TextBox1)

Set celluletrouvee = Range("A2:A200").Find(Num, lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("pas trouvé")
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
Som = col + 1
MsgBox ("Trouvé")
For I = 2 To 55
Dim R As Range
TxtB = "TextBox" & I
UserForm4.Controls(TxtB).Value = ''' Ici je veux insérer la ligne trouvé Ex B2, B3, .....B55 '''

Next I
End If
End Sub

2 réponses

  1. Iama Messages postés 324 Statut Membre 14
     
    Bonjour sinane

    Je pense que le bout de code qui te manque est

    cells(ligne, colonne)
    Range("B55") équivalent à cells(55,2)

    ou Sheets("Bases des données").Cells(55, 2)
    0
  2. sinane123
     
    bonjour,
    enfin j'ai trouvé la solution
    code :
    Private Sub Button100_Click()
    Dim Num As Long

    Dim celluletrouvee As Range
    Dim test As Range
    Dim ligne As Integer
    Dim col As Integer
    Dim I As Integer
    Dim TxtB As String
    '
    '
    '''Affecter la valeur de textbox1 dans le variable num'''
    Num = CSng(UserForm4.TextBox1)

    Set celluletrouvee = Range("A:A").Find(Num, lookat:=xlWhole)
    If celluletrouvee Is Nothing Then
    MsgBox ("pas trouvé")
    Else
    ligne = celluletrouvee.Row
    col = celluletrouvee.Column
    MsgBox ("Trouvé")
    For I = 2 To 55
    TxtB = "TextBox" & I
    UserForm4.Controls(TxtB).Value = celluletrouvee([col], [I])
    Next I
    End If

    End Sub
    0
    1. Iama Messages postés 324 Statut Membre 14
       
      Salut
      c'est super!
      Ptit remarque: ta variable ligne est-elle encore utile?
      dans celluletrouvee([col], [I]) je pense que tu peux te passer des"["

      Quand tu déclare une variable, je te conseil de mettre une majuscule.
      (Pas sur la première lettre, comme les fonctions vba)
      Excel remet automatiquement la majuscule quand tu écrit le code, cela te permet d'éviter les fautes de frappe
      cordialement
      0
    2. Iama Messages postés 324 Statut Membre 14
       
      Bonjour sinane123

      Je ne comprend pas bien comment fonctionne ton code : celluletrouvee([col], [I]) .
      Ce que j'ai vu c'est qu'il ne marche pas si tu fais une recherche en une colonne autre que la "A".

      Je te propose : celluletrouvee.Offset(0, I) ou tu cherche la valeur à + 0 ligne et , à + I colonne
      0