Autres textbox en séries...

AlainProviste

XLDnaute Nouveau
Bonjour,

Dans ma feuille de calcul j'ai 3 colonnes (ABC ) de valeurs numériques sur une plage de 100.
Je souhaiterais que ces colonnes soient envoyées à l'identique dans 100 textbox .
Dans une autre cas j'ai utilisé le code ci dessous pour une colonne mais je ne parviens pas à faire de même pour 3 colonnes.

Dim x as integer
For x = 1 To 100
Me.Controls("Textbox1" & x).Value = Sheets("FEUIL1").Range("B" & x).Value
Next x

Merci par avance de m'apporter votre aide.
 

Pièces jointes

  • Classeur1.xlsm
    16.7 KB · Affichages: 7
Solution
il faut Créer un bouton commande dans l'Userform1
Coller ce code :
Code:
Private Sub CommandButton1_Click()
    Macro4
End Sub

Modifier le code Macro4 : UserForm1.Show
VB:
Sub Macro4()
Dim x, y, cpt As Integer
cpt = 1
With Sheets("FEUIL1")
For x = 1 To 8 ' Nombre de Lignes 9, 10, 11, 12 Ect  (Pour une Ligne = 3 TextBox)
    For y = 1 To 3
        UserForm1.Controls("Textbox" & cpt).Value = .Range(.Cells(x + 1, y), .Cells(x + 1, y)).Value
        Debug.Print UserForm1.Controls("Textbox" & cpt).Value
        cpt = cpt + 1
    Next y
Next x
End With
x = Empty: y = Empty: cpt = Empty
End Sub

Puis choisir a qu'elle moment vous lancer l'affichage de l'userform1 (Ou placer le code)
Code:
Public sub...

cp4

XLDnaute Barbatruc
Bonjour,

Dans ma feuille de calcul j'ai 3 colonnes (ABC ) de valeurs numériques sur une plage de 100.
Je souhaiterais que ces colonnes soient envoyées à l'identique dans 100 textbox .
Dans une autre cas j'ai utilisé le code ci dessous pour une colonne mais je ne parviens pas à faire de même pour 3 colonnes.

Dim x as integer
For x = 1 To 100
Me.Controls("Textbox1" & x).Value = Sheets("FEUIL1").Range("B" & x).Value
Next x

Merci par avance de m'apporter votre aide.
bonsoir, retire le 1 à la fin de textbox1
VB:
Me.Controls("Textbox" & x).Value = Sheets("FEUIL1").Range("B" & x).Value
 

laurent950

XLDnaute Accro
Bonsoir @AlainProviste, @cp4

VB:
Sub Macro4()
Dim x, y, cpt As Integer
cpt = 1
With Sheets("FEUIL1")
For x = 1 To 8 ' Nombre de Lignes 9, 10, 11, 12 Ect  (Pour une Ligne = 3 TextBox)
    For y = 1 To 3
        UserForm1.Controls("Textbox" & cpt).Value = .Range(.Cells(x + 1, y), .Cells(x + 1, y)).Value
        Debug.Print UserForm1.Controls("Textbox" & cpt).Value
        cpt = cpt + 1
    Next y
Next x
End With
UserForm1.Show
x = Empty: y = Empty: cpt = Empty
End Sub
 

AlainProviste

XLDnaute Nouveau
Merci Laurent950 ta macro fonctionne à merveille. Cependant j'ai omis de préciser dans ma question que je souhaitais actionner la "macro4 avec un bouton de commande sur mon userform. J'ai tenté de le faire mais j'obtiens le message d'erreur 401="Feuille déjà affichée ; affichage modal impossible." comment remédier à cette erreur ?
 

laurent950

XLDnaute Accro
je souhaitais actionner la "macro4 avec un bouton de commande sur mon userform.
il faut Créer un bouton commande dans l'Userform1
Coller ce code :
Code:
Private Sub CommandButton1_Click()
    Macro4
End Sub

Modifier le code Macro4 : UserForm1.Show
VB:
Sub Macro4()
Dim x, y, cpt As Integer
cpt = 1
With Sheets("FEUIL1")
For x = 1 To 8 ' Nombre de Lignes 9, 10, 11, 12 Ect  (Pour une Ligne = 3 TextBox)
    For y = 1 To 3
        UserForm1.Controls("Textbox" & cpt).Value = .Range(.Cells(x + 1, y), .Cells(x + 1, y)).Value
        Debug.Print UserForm1.Controls("Textbox" & cpt).Value
        cpt = cpt + 1
    Next y
Next x
End With
x = Empty: y = Empty: cpt = Empty
End Sub

Puis choisir a qu'elle moment vous lancer l'affichage de l'userform1 (Ou placer le code)
Code:
Public sub AfficheUserform1()
  Me.Show
End Sub
 

AlainProviste

XLDnaute Nouveau
il faut Créer un bouton commande dans l'Userform1
Coller ce code :
Code:
Private Sub CommandButton1_Click()
    Macro4
End Sub

Modifier le code Macro4 : UserForm1.Show
VB:
Sub Macro4()
Dim x, y, cpt As Integer
cpt = 1
With Sheets("FEUIL1")
For x = 1 To 8 ' Nombre de Lignes 9, 10, 11, 12 Ect  (Pour une Ligne = 3 TextBox)
    For y = 1 To 3
        UserForm1.Controls("Textbox" & cpt).Value = .Range(.Cells(x + 1, y), .Cells(x + 1, y)).Value
        Debug.Print UserForm1.Controls("Textbox" & cpt).Value
        cpt = cpt + 1
    Next y
Next x
End With
x = Empty: y = Empty: cpt = Empty
End Sub

Puis choisir a qu'elle moment vous lancer l'affichage de l'userform1 (Ou placer le code)
Code:
Public sub AfficheUserform1()
  Me.Show
End Sub
Excellent ! merci beaucoup et désolé pour mes lacunes mais vous l'aviez compris je ne maitrise pas vraiment le VBA. Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 885
Membres
101 830
dernier inscrit
sonia poulaert