EXCEL : comment copier/coller variables ?

Résolu
BENERACH Messages postés 6 Statut Membre -  
 benerach -
Bonjour,

Je souhaiterais copier des données se situant dans un onglet vers un autre onglet.
Jusque là pas de problème, mais je veux que la copie soit effectuée automatiquement (style macro ou formule) au bon endroit en fonction d'un élément commun au deux onglets !
C'est super du à expliquer !
Je souhaiterais joindre le fichier en exemple, mais je ne vois pas comment on fait ?

Merci++

6 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,
    pour joindre une pièce
    mettre le classeur sans données confidentielles, au format Excel 97-2003, en pièce jointe sur
    https://www.cjoint.com/
    et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
    0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    On utilise https://www.cjoint.com/ pour créer un lien, qu'on colle dans le message.
    0
  3. BENERACH Messages postés 6 Statut Membre
     
    Bonjour,

    Voici le fichier... enfin j'espère que j'ai tout bien fait.

    Merci++

    https://www.cjoint.com/?BCDrdV30Dm9BCDrdV30Dm9
    0
    1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      Non, tu as loupé l'avant-dernière étape :
      Après avoir cliqué sur "Copier le lien", une fenêtre s'affiche, qui te demande "Voulez-vous autoriser l'accès ... ?" et tu n'as pas coché "Autoriser l'accès".
      Alors recommence.
      0
    2. BENERACH Messages postés 6 Statut Membre
       
      Bonjour,

      https://www.cjoint.com/?BCEjDg8HxrU

      Cette fois ci j'ai bien coché "autoriser l'accès"...

      Merci +++ pour ta patience, je découvre !
      0
  4. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    En attendant que quelqu'un t'écrive une macro efficace, et comme tu n'as que trois valeurs à récupérer, et qu'elles sont côte-à-côte sur les deux feuilles, et comme de toutes façons tu ne peux traiter qu'un devis à la fois, je te suggère de faire un simple copier coller de F9:H9 sur DONNEES!L2:N2 ; ça te demande seulement deux clics au lieu d'un seul sur le bouton de la macro ...
    0
    1. BENERACH Messages postés 6 Statut Membre
       
      Merci ++
      Ce fichier est destiné à être dupliqué en 5 exemplaires, et 5 utilisateurs ; le copier/coller automatique que j'avais imaginé aurait dû être fait pour leur simplifier la vie, meme si effectivement ce n'est pas grand chose... mais peut-être que quelqu'un me trouvera une petite macro qui va bien ! en attentant merci +++
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    ci joint proposition VBA; la macro se déclenche lorsque tu changes le devis en cellule C6
    https://www.cjoint.com/?3CErlH7IgDt

    pour voir et modifier la macro clic droitsur l'onglet vert "éléments revisés"-visualiser le code

    le dit-code
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim devis_m As String, rep As Byte, ecarts, lig As Integer
    
    If Target.Address = "$C$6" Then
         devis_m = Target
         rep = MsgBox(devis_m & " est sélectionné pour copier les écarts." & vbLf & _
                   "Continuer ?", vbYesNo)
                   If rep = vbNo Then Exit Sub
          ecarts = Range("F9:I9").Value
          
         With Sheets("donnees")
              lig = .Columns("E").Find(devis_m, .Range("E1"), xlValues).Row
              .Range(.Cells(lig, "L"), .Cells(lig, "N")) = ecarts
         End With
         
         rep = MsgBox("copie des écarts de " & devis_m & " en feuille ""donnees"" réussi" & vbLf & _
                   "voir ?", vbYesNo)
                   If rep = vbYes Then Sheets("donnees").Activate
     End If
    End Sub

    Michel
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Normalement, il ne faudrait pas déclencher la macro sur le changement en C6 mais j'attend que benerach veuille bien se manifester....
      0
    2. benerach
       
      Bonjour,

      C vraiement trop top !!! Quelle chance tu as, de savoir faire des truc pareils ! Si je savais cela me simplifierais la vie bien souvent !

      La seule petite chose qui me chagrine, c'est que effectivement je ne souhaitais pas que les données soient copiées dans la feuille "Données" dés le départ.
      L'idée est de choisir le num de devis en C6. Cette action alimente les cellules E6 à I6.
      Puis des lignes d'écart sont créées selon le besoin, générant ainsi des sommes qui sont aditinnées de F9 à H9. Et c'est une fois que les écarts auraient été listés et chiffrés que je souhaiterais que ta SUPER MEGA maco copi/colle dans la feuille "Données" les infos au bon endroit (comme c'est déjà le cas dans la macro).

      Je pense que c'est ce que tu voulais dire dans le second message !?

      Merci+++++ c'est déjà vraiement super !
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      re,

      Je pense que c'est ce que tu voulais dire dans le second message !? oui

      A mon avis (mais...) il faudrait peut-être nettoyer le tableau (B12:H45) et C6 à la fin de la macro?
      tu dis , j'attends ta réponse avant d'adapter la macro
      La macro sera déclenché par un bouton...
      0
    4. benerach
       
      re,
      Si ton idée de nettoyage et de mettre au propre la page avant une nouvelle saisie d'écart pour une nouvelle cotation, alors c'est ok.
      Pour le bouton qui copiera/collera les infos, à la fin de la saisie des écarts c'est ok aussi. (C6 reste tout de même accessible dés le début pour alimenter les cellules E6 à I6, n'est ce pas ?).
      Millessssss mercissssssssss
      0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    ci joint modifications

    https://www.cjoint.com/?3DcrVCrqLuT
    la macro est maintenant dans le module 1
    le code du bouton se trouve dans le module-feuille " elements révisés" de l'éditeur visual basic

    il faut que tu modifies les formules E6:I6 avec un SI (C6="";"";RECH....etc)
    Michel
    0
    1. benerach
       
      Merci +++++
      Cela m'a l'air tout à fait SUPER....
      Je vais tester et te dis si tout ok (vendredi)
      Encore merci
      0
    2. benerach
       
      Mon PC fut HS durant plus d'une semaine, je n'ai donc pas pu répondre comme prévu (vendredi). Mais je tiens à le faire maintenant que tout est rétabli.
      Donc, tout est ok et fonctionne très bien !
      Merci bcq ce vraiement super.
      0