Copier coller des infos avec VBA

Résolu
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

13 réponses

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

0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Pour une copie du fichier la mettre sur https://www.cjoint.com/ et poster le lien sur votre message.

0

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

Posez votre question
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour et bonsoir,
Merci pour le fichier.
Il se fait tard, ma réponse demain.

0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, je ne copie aucune valeur dans ces colonnes je les ai laissé car je m'en étais servi pour des tests
0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Merci pour les informations.
Je suis enfin de retour, ma proposition dans la soirée.

0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Merci d'avance j essaie également de mon côté
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Parfait ! merci beaucoup vraiment ! je continues mon logiciel dans l'espoir de ne pas rencontrer trop de difficultés !

Cdlt.
0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Solution trouvée , autres problèmes à gérer ...
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Ce qui est faux, chaque fonction est utilisable avec un tableau normal ou un tableau structuré...!
Salutations.
Le Pingou
0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Merci, content pour vous.
Note, il est préférable que votre nouvelle demande soit l'objet d'un nouveau poste.

0
mds23 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Ok , merci, je fais cela immédiatement.

Clt.
0