Recopier une plage de cellules

Résolu
saolaneducado -  
 saolaneducao -
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. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Mettre le fichier, avec ce que vous avez réalisé, sur https://www.cjoint.com/ et poster le lien.

    0
    1. saolaneducado
       
      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. saolaneducado
       
      Pardon ! j'ai oublié le pot de passe est 3382236 pour toutes les feuilles.

      Merci pour votre aide
      0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour le fichier.
    Désolé, je ne travaille pas sur des fichiers avec protection par mot de passe.

    0
  3. foo
     
    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
  4. saolaneducado
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. foo
     
    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
  7. saolaneducado
     
    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
  8. foo
     
    Bonsoir

    Voila ton fichier modifier

    http://cjoint.com/?DAqvu1YakPV

    bon je vais aller au dodo

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

    Merci pour ton aide
    0
  10. saolaneducao
     
    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
  11. saolaneducao
     
    En fait cela fonctionne si en fin de procédure j'active la feuille "cotation". super merci beaucoup.
    0