Copier juste la valeur de la cellule!!!!

Résolu
Vorfonk Messages postés 58 Statut Membre -  
eriiic Messages postés 24581 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

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. 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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    2. Vorfonk Messages postés 58 Statut Membre
       
      Je vous Remercie pour votre aide Mr. Eric!
      ça m'a été bien utile votre, code.
      Passez une bonne journée!
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      De rien :-)
      Bonne continuation
      0