![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Sheets("TABLEAU").Select
Range(ActiveCell.FormulaR1C1 = "+RC(1)").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Bonjour, Qu'est ce qui ne va pas dans ma ligne Range ? Je veux une fois des données copiées sur une autre feuille, coller ces données 1 colonne plus loin dans ma feuille tableau. Si je suis en A6, venir coller les données en b6 Si je suis en A10, venir coller les données en b11 ... Merci de votre aide |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Salut Eric et tout le forum,
Je me tente à la réponse mais là j'avoue que je ne suis pas sure de réellement te venir en aide puisque pas vraiment sure d'avoir compris la question : Bref En résumé j'ai écrit une ligne qui te permet de récupérer la valeur de ta cellule dans la cellule juste en dessous (+1 ligne) Sheets("TABLEAU").Select ActiveCell.Offset(1, 0) = ActiveCell 'Offset décale (ligne, colonne) Mais ce qui m'inquiète le plus c'est : Si je suis en A10, venir coller les données en b11 avec mon code tu attéris en B10 et non pas B11!! @+ j'espère au moins avoir fait avancer le schmilblick Valérie |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Eric
Range().select sélectionne la cellule définie entre les () ActiveCell.FormulaR1C1 = "=RC[1]" , cette ligne installe dans la cellule active une formule qui lui donne la valeur de la cellule immédiatement à sa droite. Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False colle la valeur du presse papier dans la cellule active. Donc si j'ai bien compris tu veux mettre la valeur immédiatement à droite de la cellule active dans la cellule active. D'ou la ligne : Sheets("TABLEAU").Select ActiveCell.Value = ActiveCell.Offset(0, 1).Value Cordialement Bernard |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Oups !
On s'est croisé !! Mais je crois avoir compris qu'il voulait un décalage de 1 ligne et une colonne. Pas sur, car une fois il demande de A6 vers B6 et après de A10 vers B11...?? Je crois Bernard que tu as inversé ce qu'il voulait...! @ + Moa |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Je me suis mal exprimé c'est B10 que je voulais dire.
En fait, je veux en étant positionné sur une celulle dans la colonne A, venir coller des données sur la colonne B et D. Pour l'instant, j'ai mis Range("b6").Select et pareil pour D6. Le problème c'est que cela ne marche que sur ma ligne 6. Avec offset, cela ne marche pas. J'essaye de vous envoyer le fichier en txt. Merci à tous. |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Rebonjour Eric
Je comprends que lorsque on débute en VBA, c'est un peu comme vouloir parler le chinois quand on n'est pas né en chine. Tu as trouvé, c'est bien, tu aurais gagné du temps et nous aussi à prendre 5 minutes pour expliquer clairement ton problème. Bien expliquer ce que l'on veut, c'est une forme de politesse pour ceux qui vont te lire. Si Selection.Offset(0, 1).Range("A1").Select est ta solution, Range("A1").Offset(0, 1).select est plus exact J'ai pris le temps de lire le fichier texte de la macro, lui aussi peut être simplifié comme suit, si j'ai bien compris tes souhaits biensûr !!! Sub Détailsmeubles() Sheets("DONNEES").Select Range("D1:E1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=Range("TABLEAU!A6").Value Selection.AutoFilter Field:=2, Criteria1:="Caisson" Range("D2:E2781").Copy Sheets("TABLEAU").Range("B6").PasteSpecial Paste:=xlValues Application.CutCopyMode = False Selection.AutoFilter Field:=2, Criteria1:="Tiroir" Range("D2:E2781").Copy Sheets("TABLEAU").Range("D6").PasteSpecial Paste:=xlValues Application.CutCopyMode = False Selection.AutoFilter Field:=2, Criteria1:="Contre marque" Range("C2:E2781").Copy Sheets("TABLEAU").Range("F6").PasteSpecial Paste:=xlValues Application.CutCopyMode = False Selection.AutoFilter Field:=2, Criteria1:="Accessoire" Range("C2:E2781").Copy Sheets("TABLEAU").Range("I6").PasteSpecial Paste:=xlValues Application.CutCopyMode = False ActiveSheet.ShowAllData Sheets("TABLEAU").Select End Sub Bien cordialement Bernard |
|
|
#10 (permalink) |
|
Guest
Messages: n/a
|
Merci Bernard. Tu as tout à fait raison pour les 5 minutes.
Maintenant, j'essaye de modifier la macro pour remplacer "Tableau!A6" par la cellule active dans la feuille Tableau. Selection.AutoFilter Field:=1, Criteria1:=Range("TABLEAU!A6").Value Le but est de me positionner dans une celulle de la colonne A de la feuille tableau, et de recopier les informations de ma feuille "données" en fonction du critère de la cellule où je suis positionné. J'espère que c'est à peu près clair. Merci si tu peux quelque chose pour moi. |
| Liens sociaux |
| Outils de la discussion | |
|
|