VBA Excel - retour à la ligne
Narcisse
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour, mon programme initial est simple:
table1 = Sheets("Accueil").Range("D22:D44").Value
Sheets("Formulaire").Range("A5:W5") = Application.Transpose(table1)
La première ligne me permet de copier une colonne d'information (D) provenant de la page "Accueil".
Et la seconde ligne me permet de coller ces informations dans une ligne (5) dans la page "Formulaire".
Mon code permet donc de transposer des informations initialement en colonne en ligne sur une autre page.
Jusqu'à là, tout va bien. Je me sers d'ailleurs d'un bouton pour activer le code.
Problème, j'aimerai que lorsque j'appuie sur mon bouton, la première ligne (5) se remplisse. Et que lorsque je ré-appuie sur le bouton, se soit la ligne d'après (6) qui se remplisse. Et ainsi de suite.
Voilà, voilà.
Je ne pense pas que ça soit bien compliqué mais c'est carrément hors de ma porté.
Merci !
table1 = Sheets("Accueil").Range("D22:D44").Value
Sheets("Formulaire").Range("A5:W5") = Application.Transpose(table1)
La première ligne me permet de copier une colonne d'information (D) provenant de la page "Accueil".
Et la seconde ligne me permet de coller ces informations dans une ligne (5) dans la page "Formulaire".
Mon code permet donc de transposer des informations initialement en colonne en ligne sur une autre page.
Jusqu'à là, tout va bien. Je me sers d'ailleurs d'un bouton pour activer le code.
Problème, j'aimerai que lorsque j'appuie sur mon bouton, la première ligne (5) se remplisse. Et que lorsque je ré-appuie sur le bouton, se soit la ligne d'après (6) qui se remplisse. Et ainsi de suite.
Voilà, voilà.
Je ne pense pas que ça soit bien compliqué mais c'est carrément hors de ma porté.
Merci !
A voir également:
- VBA Excel - retour à la ligne
- Retour à la ligne excel mac - Guide
- Liste déroulante excel - Guide
- Retour à la ligne google sheet ✓ - Forum Google Docs
- Partager photos en ligne - Guide
- Formule somme excel ligne - Guide
4 réponses
bonsoir,
tu peux faire une boucle "if" une fois le bouton actionné. En gros un truc qui ferait que IF ta table1 est vide THEN ça colle la colonne d'information (D) provenant de la page "Accueil".
ELSE ça colle ces informations dans une ligne (5) dans la page "Formulaire".
j'ai pas trop saisi où était collé quoi, mais j'pense que t'as du comprendre le fonctionnement. :)
tu peux faire une boucle "if" une fois le bouton actionné. En gros un truc qui ferait que IF ta table1 est vide THEN ça colle la colonne d'information (D) provenant de la page "Accueil".
ELSE ça colle ces informations dans une ligne (5) dans la page "Formulaire".
j'ai pas trop saisi où était collé quoi, mais j'pense que t'as du comprendre le fonctionnement. :)
Bonjour,
Si j'ai bien compris, suffit de trouver la dernière ligne vide ?, si oui...
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Si j'ai bien compris, suffit de trouver la dernière ligne vide ?, si oui...
Dim Lig As Long
table1 = Sheets("Accueil").Range("D22:D44").Value
Lig = Sheets("Formulaire").Range(A65535).End(xlUp).Row + 1
Sheets("Formulaire").Range("A" & Lig & ":W" & Lig) = Application.Transpose(table1)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Bonjour, merci d'avoir répondu aussi rapidement ! :-)
@lermite222: ça me marque erreur. :-(
Sinon, j'ai trouvé cela:
table1 = Sheets("Accueil").Range("D22:D44").Value
i = 5
Do While (Sheets("Formulaire").Cells(i, 1) <> "") And (i <= 29)
i = i + 1
Loop
Sheets("Formulaire").Rows(i) = Application.Transpose(table1)
Le code marche et répond à mes attentes.
Encore merci à vous deux. :-)
@lermite222: ça me marque erreur. :-(
Sinon, j'ai trouvé cela:
table1 = Sheets("Accueil").Range("D22:D44").Value
i = 5
Do While (Sheets("Formulaire").Cells(i, 1) <> "") And (i <= 29)
i = i + 1
Loop
Sheets("Formulaire").Rows(i) = Application.Transpose(table1)
Le code marche et répond à mes attentes.
Encore merci à vous deux. :-)
Tu aurais pu chercher un peu.. non ??
j'ai mis le code à main levée et il y a deux errreurs..
des guillemets et un S
C'est plus cour que ton Do.. loop
Prochaine fois, donne le N° de l'erreur.. ça serra plus simple.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
j'ai mis le code à main levée et il y a deux errreurs..
des guillemets et un S
Lig = Sheets("Formulaire").Range("A65535").End(xlUp).Rows + 1
C'est plus cour que ton Do.. loop
Prochaine fois, donne le N° de l'erreur.. ça serra plus simple.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)