Copier coller des infos avec VBA [Résolu/Fermé]

Signaler
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015
-
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015
-
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

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
La suite de votre code après l'instruction : For I = 1 To Cpt
Manque... ?

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

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
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
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... !

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

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.
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Pour une copie du fichier la mettre sur https://www.cjoint.com/ et poster le lien sur votre message.

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

https://www.cjoint.com/?3CpxFx8MQcv

Ci joint le lien avec une version simplifiée de mon devis (pour des raisons de confidentialité)

merci de votre aide
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour et bonsoir,
Merci pour le fichier.
Il se fait tard, ma réponse demain.

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
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.

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

Bonjour, je ne copie aucune valeur dans ces colonnes je les ai laissé car je m'en étais servi pour des tests
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

je tiens également à préciser que j'ai essayé avec la variable
Dim Cpt as integer
et que cela n'a rien changé.

Cordialement
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Merci pour les informations.
Je suis enfin de retour, ma proposition dans la soirée.

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

Merci d'avance j essaie également de mon côté
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
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

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

Parfait ! merci beaucoup vraiment ! je continues mon logiciel dans l'espoir de ne pas rencontrer trop de difficultés !

Cdlt.
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

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....
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

Solution trouvée , autres problèmes à gérer ...
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Ce qui est faux, chaque fonction est utilisable avec un tableau normal ou un tableau structuré...!
Salutations.
Le Pingou
Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

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
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 074
Bonjour,
Merci, content pour vous.
Note, il est préférable que votre nouvelle demande soit l'objet d'un nouveau poste.

Messages postés
18
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
12 avril 2015

Ok , merci, je fais cela immédiatement.

Clt.