Recopier une plage de cellules

Résolu
Bonjour,

Je suis presque arrivé au bout de mon problème, mais seulement presque!

Je voudrais sélectionner un plage de cellule (3cellules contiguës) dans ma "feuille1" et la recopier dans un tableau dans une "Feuille2" à partir de la cellule A2 et aussi souvent qu'il y a quelque chose dans les cellules de la colonne D du même tableau.
Est ce possible? Je ne trouve pas la solution. J'arrive à recopier mais je n'arrive pas à limiter le nombre par rapport aux cellules de droite ni même à positionner les valeurs au bon endroit.

Merci pour votre aide.

10 réponses

  1. Bonjour,
    Mettre le fichier, avec ce que vous avez réalisé, sur https://www.cjoint.com/ et poster le lien.

    0
    1. http://cjoint.com/?0AqmBugByVk

      Bonjour et merci de vous pencher sur mon problème.
      Mon soucis est de copier le détail du corps de la feuille "cotation" sur la feuille "Details_C".
      Pour celà je vais utiliser le code VBA du module "Detail_C". La copie des lignes fonctionnent bien et se positionne correctement, mais à gauche de celles ci je voudrai copier les cellules "M2:O2" de la feuille cotation. en fait, je voudrai sur chaque ligne de commande les infos code client, N) de commande et Date.
      je pensais faire une recopie mais je n'y arrive pas. En fait, je crois tout simplement que j'ai atteint mes limites.
      Merci pour votre aide.
      Cordialement
      0
    2. Pardon ! j'ai oublié le pot de passe est 3382236 pour toutes les feuilles.

      Merci pour votre aide
      0
  2. Bonjour,
    Merci pour le fichier.
    Désolé, je ne travaille pas sur des fichiers avec protection par mot de passe.

    0
    1. Bonjour

      voila ta macro detail modifier

      ' Compteur de Ligne compatible tous Excel
      ' Range("A" & Rows.Count).End(xlUp).Row

      Sub detail()
      Dim Plage As Range
      Dim Cpt As String
      Dim Nlig As Long
      With Application
      .Calculation = xlCalculationManual
      .ScreenUpdating = False
      End With
      Nlig = Range("A34").End(xlUp).Row
      Set Plage = Range("A2:I" & Nlig)
      Plage.Copy
      Feuil23.Range("D" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
      Set Plage = Nothing ' Libère l'objet
      Application.CutCopyMode = False
      With Application
      .Calculation = xlCalculationAutomatic
      .ScreenUpdating = True
      End With
      Range("A2").Select
      End Sub

      pour le reste
      donne un fichier avec cotation et Détail
      et avec les champs remplie pour voir ce que tu veux exactement

      A+
      Maurice
      0
      1. merci pour cette macro, mais elle recopie le titre.

        En fait, l'objectif est de stocker le détail de ma feuille cotation dans la feuille Details_C en ajoutant sur chaque ligne les champs m2 à O2 de la feuille cotation.

        La seule chose que je n'arrive pas à récupérer ce sont ces champs et limiter leur recopie au nombre de ligne du corps de la cotation.

        Je met en rouge dans la feuille "details_C" les données que je n'arrive pas à insérer correctement.

        Si tu peux me donner une explication de ta macro je prends également et me dire ce qu'elle est censée faire. Je dois peut être modifier certaines choses.

        Merci pour ton aide. J'apprécie vraiment d'autant plus que je suis bloqué.

        http://cjoint.com/?3Aqt5wGZYBV
        0
        1. Re

          la sa doit marcher

          Sub detail()
          Dim Plage As Range
          Dim Cpt As String
          Dim Nlig As Long
          With Application
          .Calculation = xlCalculationManual
          .ScreenUpdating = False
          End With
          Nlig = Range("A34").End(xlUp).Row
          Dlig = Feuil23.Range("A" & Rows.Count).End(xlUp).Row + 1
          Flig = (Nlig + Dlig) - 2
          Comercial = Range("P2").Value
          Range("M2:O2").Copy
          For L = Dlig To Flig
          Range("M2:O2").Select
          Feuil23.Range("A" & L).PasteSpecial xlPasteValues
          Feuil23.Range("M" & L).Value = Comercial
          Next
          Set Plage = Range("A2:I" & Nlig)
          Plage.Copy
          Feuil23.Range("D" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
          Set Plage = Nothing ' Libère l'objet
          Application.CutCopyMode = False
          With Application
          .Calculation = xlCalculationAutomatic
          .ScreenUpdating = True
          End With
          Range("A2").Select
          End Sub

          lancer la macro dans la feuille Cotation

          A+
          Maurice
          0
          1. merci mais j'ai le même résultat si je la lance d'un module et une erreur 1024 si je la lande la feuille.

            Je suis désolé de t'embêter avec ca.

            merci pour ton aide
            0
            1. Bonsoir

              Voila ton fichier modifier

              http://cjoint.com/?DAqvu1YakPV

              bon je vais aller au dodo

              A+
              Maurice
              0
              1. oui c'est celà mais pour chaque nouvel enregistrement qui peut peut être de longueur différent.

                Merci pour ton aide
                0
                1. Bonjour,

                  Le premier enregistrement fonctionne mais pas les suivants. Ton code est super bien pour la simplification du mien. Par contre il ne manque dans les nouveaux enregistrements les cellules code client N° de commande Date et commercial.

                  Merci pour ton aide
                  0
                  1. En fait cela fonctionne si en fin de procédure j'active la feuille "cotation". super merci beaucoup.
                    0