Copier coller des infos avec VBA

Résolu
mds23 Messages postés 18 Statut Membre -  
mds23 Messages postés 18 Statut Membre -
Bonjour à tous,

je suis actuellement en train de créer une sorte de logiciel de devis-facture. Mon but est de copier coller les données saisies dans le devis sur une liste (ou base de données).
Ceci n'est pas compliqué mais le problème est que mon tableau dynamique change de taille car le devis peut contenir 5 ou 10 lignes.

j'ai donc utilisé ceci:
Sub CopieCollDétails()
' copie et colle les lignes du devis

'Déclaration des variables
Dim Cpt As Variant
Dim I As Integer

'Positionnement de départ
Sheets("Devis - A2EV").Range("b29").Activate

'copie-colle
Cpt = Range("b29").CurrentRegion.Rows.Count

For I = 1 To Cpt

et ensuite la procédure "copier-coller" de ma première ligne devis vers la liste.

Cependant, lorsque je me met en code I=vide et Cpt=Vide alors que Count=9 (ou cela varie également).

Que dois-je faire que dois-je changer?

Merci d'avance !

13 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    La suite de votre code après l'instruction : For I = 1 To Cpt
    Manque... ?

    0
    1. mds23 Messages postés 18 Statut Membre
       
      voici la suite : (je pensais qu'en déplaçant la cellule active cela fonctionnerait)

      Sheets("Devis - A2EV").Select
      Range("B29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[[Référence ]]").Select
      ActiveSheet.Paste
      Sheets("Devis - A2EV").Select
      Range("C29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Designation]").Select
      ActiveSheet.Paste
      Sheets("Devis - A2EV").Select
      Range("D29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Quantité]").Select
      ActiveSheet.Paste
      Sheets("Devis - A2EV").Select
      Range("E29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Prix Unitaire HT]").Select
      ActiveSheet.Paste
      Sheets("Devis - A2EV").Select
      Range("F29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Montant HT]").Select
      Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
      xlNone, SkipBlanks:=False, Transpose:=False
      Sheets("Devis - A2EV").Select
      Range("G29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Prix Unitaire Brut]").Select
      ActiveSheet.Paste
      Sheets("Devis - A2EV").Select
      Range("H29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Montant Brut]").Select
      Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
      xlNone, SkipBlanks:=False, Transpose:=False
      Sheets("Devis - A2EV").Select
      Range("I29").Select
      Application.CutCopyMode = False
      Selection.Copy
      Sheets("Liste détails").Select
      Range("LisDetails[Numéro devis]").Select
      ActiveSheet.Paste


      ActiveCell.Offset(1, 0).Activate

      Next I

      End Sub
      0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour le code,
    A la lecture de votre code, je comprends que vous copiez les valeurs des colonnes [C] à [I] de la ligne [29] de la feuille [Devis - A2EV] que vous collez sur la feuille [liste détails].....
    Est-ce bien le cas...Oui Non
    Merci de préciser ... !
    Ce serait plus simple de vous comprendre avec un exemple du fichier... !

    0
  3. mds23 Messages postés 18 Statut Membre
     
    c'est exact je copie les valeurs de b29 à I29 de la feuille Devis-A2ev sur la feuille liste détails.

    je veux bien vous transmettre une copie du fichier mais cela m'est impossible sur le message, pas de pièce jointe disponible.
    0
  4. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Pour une copie du fichier la mettre sur https://www.cjoint.com/ et poster le lien sur votre message.

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour et bonsoir,
    Merci pour le fichier.
    Il se fait tard, ma réponse demain.

    0
  7. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Pouvez-vous préciser les valeurs à prendre en compte pour les colonnes nommées [Colonne1] à [Colonne4] de la feuille [liste de détails]... ?
    Merci.

    0
    1. mds23 Messages postés 18 Statut Membre
       
      Bonjour, je ne copie aucune valeur dans ces colonnes je les ai laissé car je m'en étais servi pour des tests
      0
  8. mds23 Messages postés 18 Statut Membre
     
    je tiens également à préciser que j'ai essayé avec la variable
    Dim Cpt as integer
    et que cela n'a rien changé.

    Cordialement
    0
  9. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci pour les informations.
    Je suis enfin de retour, ma proposition dans la soirée.

    0
    1. mds23 Messages postés 18 Statut Membre
       
      Merci d'avance j essaie également de mon côté
      0
  10. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Ma proposition se base du tableau Excel structuré que vous utilisez pour vos données du devis.
    J'espère que c'est dans le bon sens !
    Votre exemple : https://www.cjoint.com/c/ECqw2mAaRuI

    0
    1. mds23 Messages postés 18 Statut Membre
       
      Parfait ! merci beaucoup vraiment ! je continues mon logiciel dans l'espoir de ne pas rencontrer trop de difficultés !

      Cdlt.
      0
  11. mds23 Messages postés 18 Statut Membre
     
    Bonjour,

    effectivement j'ai des difficultés... ce que vous avez réalisé est parfait le seul problème est que les données recopiées ne se mettent pas dans une liste( tableau dynamique) donc je ne peux pas m'en servir pour faire de recherche V... je ne sais plus quoi faire....
    0
    1. mds23 Messages postés 18 Statut Membre
       
      Solution trouvée , autres problèmes à gérer ...
      0
    2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour,
      Ce qui est faux, chaque fonction est utilisable avec un tableau normal ou un tableau structuré...!
      Salutations.
      Le Pingou
      0
  12. mds23 Messages postés 18 Statut Membre
     
    Bonjour à tous,

    mon second problème ici est que je souhaite transformer mon devis en facture, mais un devis déjà transformé en facture ne peut être modifié. Or je cherche à intégrer une macro pour bloquer le numéro de devis si déjà transformé. Besoin d'aide SVP..

    Merci d'avance à tous!
    Salutations
    0
  13. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci, content pour vous.
    Note, il est préférable que votre nouvelle demande soit l'objet d'un nouveau poste.

    0
    1. mds23 Messages postés 18 Statut Membre
       
      Ok , merci, je fais cela immédiatement.

      Clt.
      0