Copier juste la valeur de la cellule!!!!

Résolu
Vorfonk Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
Vorfonk
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
De rien :-)
Bonne continuation
0