Indiquer dans une textbox le numero de ligne de la macro

emwaj -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un tableau avec plein de lignes.
J'ai créé un formulaire dans lequel on indique le numéro de ligne pour laquelle on veut copier les données vers une autre feuille.
Je suis vraiment débutant (et nul..) en programation VBA :(
J'ai écrit ce code qui, bien sûr, n'est pas bon... je reçois une erreur: "object required"...

voici l'ébauche de code:

Sub copy_lines()

If TextBox1.Value = " " Then Worksheets(3).Cells(4, 2).Value = Worksheets(2).Cells(0, 1).Value 'copy data from line x column A in worksheets(2) to cell B4 in worksheets(3)
If TextBox1.Value = " " Then Worksheets(3).Cells(1, 7).Value = Worksheets(2).Cells(0, 10).Value 'copy data from line x column J in worksheets(2) to cell G1 in worksheets(3)
If TextBox1.Value = " " Then Worksheets(3).Cells(10, 3).Value = Worksheets(2).Cells(0, 6).Value
If TextBox1.Value = " " Then Worksheets(3).Cells(10, 5).Value = Worksheets(2).Cells(0, 3).Value
If TextBox1.Value = " " Then Worksheets(3).Cells(10, 7).Value = Worksheets(2).Cells(0, 4).Value
If TextBox1.Value = " " Then Worksheets(3).Cells(12, 3).Value = Worksheets(2).Cells(0, 6).Value
If TextBox1.Value = " " Then Worksheets(3).Cells(14, 4).Value = Worksheets(2).Cells(0, 8).Value
If TextBox1.Value = " " Then Worksheets(3).Cells(12, 7).Value = Worksheets(2).Cells(0, 9).Value

End sub


Qu'est ce que j'ai oublié? :(

merci pour votre aide!

Eric
A voir également:

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Qu'est ce que j'ai oublié?

si vous voulez copiez une cellule dont la ligne provient d'une TextBox, il faut tester que le contenu de la textbox soit un numerique et mettre le contenu de cette textbox en ligne de la cellule a copier. La ligne doit etre au minimum egale a 1 pas 0

'copy data from line x column A in worksheets(2) to cell B4 in worksheets(3)

If TextBox1.Value = " " Then Worksheets(3).Cells(4, 2).Value = Worksheets(2).Cells(0, 1).Value
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour Éric, bonjour le forum,

Cells(0,...) va automatiquement provoquer une erreur puisque la ligne 0 n'existe pas !...
Ensuite inutile de répéter la condition à chaque ligne tu peux faire :

IF TextBox1.Value = " " Then
     - action 1
     - action 2
     - action 3
     - etc.
End If

Ton code actuellement récupère dans une cellule d'un onglet la valeur d'une cellule d'un autre onglet et cela sous la condition que la TexBox1 contienne un espace...?! À aucun moment tu n'indiques un numéro de ligne !...
Difficile de t'aider vu que le bout de code fourni ne correspond pas à la description du problème. Essai d'être plus clair dans tes explications
0
emwaj
 
merci pour les commentaires.
En fait ce que je veux c'est que la ligne x du code ci dessus soit mise à jour en fonction de la valeur qu'on onscrit dans la TextBox1.
exemple: si j'y écrit '7', alors à la place de x ce sera la ligne numéro 7 du tableau excel

le problème c'est que je ne sais pas comment faire cela...

Sub copy_lines()
'copy lines from mehushpazim to format tizkoret mehushpazim
If TextBox1 = "" Then
Worksheets(3).Cells(4, 2).Value = Worksheets(2).Cells(x, 1).Value
Worksheets(3).Cells(1, 7).Value = Worksheets(2).Cells(x, 10).Value
Worksheets(3).Cells(10, 3).Value = Worksheets(2).Cells(x, 6).Value
Worksheets(3).Cells(10, 5).Value = Worksheets(2).Cells(x, 3).Value
Worksheets(3).Cells(10, 7).Value = Worksheets(2).Cells(x, 4).Value
Worksheets(3).Cells(12, 3).Value = Worksheets(2).Cells(x, 6).Value
Worksheets(3).Cells(14, 4).Value = Worksheets(2).Cells(x, 8).Value
Worksheets(3).Cells(12, 7).Value = Worksheets(2).Cells(x, 9).Value
End If
End Sub
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Dans ce cas je verrais les chose comme ça :

Sub copy_lines()
Dim X As Integer

X=Cint(TextBox1.Value)
'copy lines from mehushpazim to format tizkoret mehushpazim
If TextBox1 <> "" Then
     Worksheets(3).Cells(4, 2).Value = Worksheets(2).Cells(X, 1).Value
     Worksheets(3).Cells(1, 7).Value = Worksheets(2).Cells(X, 10).Value
     Worksheets(3).Cells(10, 3).Value = Worksheets(2).Cells(X, 6).Value
     Worksheets(3).Cells(10, 5).Value = Worksheets(2).Cells(X, 3).Value
     Worksheets(3).Cells(10, 7).Value = Worksheets(2).Cells(X, 4).Value
     Worksheets(3).Cells(12, 3).Value = Worksheets(2).Cells(X, 6).Value
     Worksheets(3).Cells(14, 4).Value = Worksheets(2).Cells(X, 8).Value
     Worksheets(3).Cells(12, 7).Value = Worksheets(2).Cells(X, 9).Value
End If
End Sub

0
emwaj
 
je reçois l'erreur "object required" :(
0
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
À quelle ligne ?! C'est pénible d'avoir à tirer les vers du nez des gens...
0
emwaj
 
excusez-moi...
l'erreur intervient à la ligne: X=Cint(TextBox1.Value)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Re,

Que vaut las TextBox1 au moment de l'erreur ? Mets ton fichier sinon on va pas y arriver !...

À plus,
ThauTheme
0