Copier juste la valeur de la cellule!!!!

Résolu/Fermé
Vorfonk Messages postés 52 Date d'inscription jeudi 7 octobre 2010 Statut Membre Dernière intervention 18 novembre 2013 - 9 oct. 2010 à 21:41
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 10 oct. 2010 à 10:59
Bonjour,
je travaille sur un fichier et j'essaye de trouver la solution pour transferer certains données d'une feuille à une autre, d'un coté je suis content d'avoir trouvé la solution avec un petit code vba:
-Sub Macro1()

Range("D2").Select
Selection.Copy
Sheets("Recup").Select
Range("B3").Select
ActiveSheet.Paste

End Sub


Mais le probleme se pose quand la macro copie meme la mise en forme de la cellule concerné, avez vous une solution?

Deuxiement , y a t il le t le moyen de manipuler le code pour excuter la tache pour plusieurs cellule a la fois sans retaper tout le code à chaque fois?

Merci d'avance , et désolé pour mon Français :D



A voir également:

2 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
9 oct. 2010 à 22:45
Bonjour,

Tu n'es pas obligé de faire les .select

Pour 1 cellule :
Worksheets("Recup").[B3] = [D2].Value

Pour plusieurs cellules :
Worksheets("Recup").Range("B3:B6") = Range("D2:D5").Value
ou sinon faire des boucles

eric
0
Bonjour,
Et merci Eric pour ton soutien,
J'ai une erreur en essayant d'executer ça :
-Worksheets("Recup").Range("B4;C4;D4;E4;F4") = Worksheets("Bon-De-commande").Range("D2;I3;I5;K43;E43").Value

Je crois que je me suis planté dans quelque chose, pourriez vous le corriger :D
merci d'avance.

PS: Je m'explique: je voudrai faire une recupulatif de mes bon de commande et je voudrai qu'a chaque fois que j'execute le tâche les informations s'enregestre sur la ligne suivante :D je suis trop nul pour arriver a mettre cette idée dans un code VBA!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
10 oct. 2010 à 10:29
Bonjour,

Comme la destination n'est pas une plage il faut faire 5 copies d'1 cellule.

Et si les écritures doivent s'écrire successivement les unes sous les autres il faut que tu récupères la 1ère ligne libre pour écrire à cet endroit.

Prend ça comme base et adapte si besoin :
Dim lig As Long
' recup 1ère ligne vide
lig = Worksheets("Recup").[B65536].End(xlUp).Row + 1
' écrire valeurs
Worksheets("Recup").Cells(lig, 2) = Worksheets("Bon-De-commande").Range("D2").Value
Worksheets("Recup").Cells(lig, 3) = Worksheets("Bon-De-commande").Range("I3").Value
Worksheets("Recup").Cells(lig, 4) = Worksheets("Bon-De-commande").Range("I5").Value
Worksheets("Recup").Cells(lig, 5) = Worksheets("Bon-De-commande").Range("K43").Value
Worksheets("Recup").Cells(lig, 6) = Worksheets("Bon-De-commande").Range("E43").Value

à condition que Bx ne soit jamais vide, sinon cale-toi sur une autre colonne pour voir la 1ère cellule vide
eric
0
Vorfonk Messages postés 52 Date d'inscription jeudi 7 octobre 2010 Statut Membre Dernière intervention 18 novembre 2013
10 oct. 2010 à 10:54
Je vous Remercie pour votre aide Mr. Eric!
ça m'a été bien utile votre, code.
Passez une bonne journée!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
10 oct. 2010 à 10:59
De rien :-)
Bonne continuation
0