code VBA qui copies les valeurs d'une plage dans un autre classeur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bouclesdor

XLDnaute Occasionnel
Bonjour à tous,

J'ai un autre projet au bureau et j'ai en tête la solution à mon problème masi j'arrive pas à mettre au point un code VBA qui fera ce que je veux...

j'ai un fichier modèle de PO que j'utilise pour mes achats donc un fichie différent pour chaque commande. Je voudrais ajouter à mon modèle un bouton qui copie les valeurs d'une plage dans un fichier de destination qui listera toute les données à la suite des autres (doncà la prochaine ligne blanche). ** De plus, si possible et pas trop compliqué, j'aimerais qu'il copie les valeurs des lignes seulement si la colonne"description" "AA" a une valeur sinon c'est que je n'avais pas d'item à cette ligne.

voir ci-joint les fichiers exemples. Si vous regardez dans le code vba pour le bouton (copie suivi colis) dans le fichier excel (fichier source) vous verrez que j'ai fait plusieurs tentavite d'adapter des codes trouvé sur internet mais j'ai toujours des bugs... pouvez-vous me guider parmi ces codes...

Merci à l'avance de votre aide si précieuse!

Bouclesdor
 

Pièces jointes

Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

hummm personne....

je vais donc continuer à chercher je sais que c'est possible... j'ai probablement juste un petit bug dans mon code...

Merci quand même de votre aide!

Bonne semaine! 🙂

Bouclesdor
 
Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

voilà je suis sur une mini piste... Ce bout de code fonctionne mais il copie les valeurs dans mon fichier source (mon modèle de PO) mais je voudrais qu'il le fasse dans le "fichier destination (liste)"

Sheet1.Range("x20:ab35").Copy
Dim nextrow As Long
Workbooks.Open Filename:="O:\Financial\PO\Fichier destination (liste).xlsm"
nextrow = Sheet2.Cells(Rows.Count, "A").End(xlUp).Row + 1
Application.ScreenUpdating = False
Windows("Fichier destination (liste).xlsm").Activate
Sheet1.Range("A" & nextrow).PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Application.ScreenUpdating = True

à suivre, je continue à travailler là dessus...
 
Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

Salut le forum

Des bout de pistes pour t'aider
Code:
Dim WBsrc As Workbook, WBdest As Workbook

Set WBsrc = ThisWorkbook
Set WBdest = Application.Workbooks.Open("O:\Financial\PO\Fichier destination (liste).xlsm", , True)

WBsrc.Sheets(1).Range("X20:AB35")").Copy
WBdest.Sheets("Feuil1").Range("A" & nextrow).PasteSpecial (xlPasteValuesAndNumberFormats)
Mytå
 
Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

Merci Myta pour votre code!

Je vais essayer votre code en espérant qu'il pourra résoudre mon problème...

Dans ma tête ça semble tellement simple mais comme je ne m'y connais que très très peu en VBA c'est ce qui me complique la tache... Mais merci de votre aide j'apprécie vraiment le p'tit coup de pouce car ça fait plusieurs heures que je passe sur ce problème mais j'arrive pas au résultat que j'aimerais...

Merci encore!

Bouclesdor
 
Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

Bon j'ai réussi un petit bout de chemin je le mets ici au cas où ça pourrait aider quelqu'un d'autre.

Ce bout de code copie mes valeurs dans un autre fichier source (j'ai pas encore réussi à inscrire le code à la suite des autres lignes blanches ça écrase mes valeurs mais je travaille la dessus ...)

'Dim wbThis As Workbook
'Dim wbSrc As Workbook
'Application.ScreenUpdating = False
' Set wbThis = ThisWorkbook
' Set wbSrc = Workbooks.Open("O:\Financial\PO\Fichier destination (liste).xlsm")
' wbThis.Worksheets("PO").Range("X20:AB35").Copy
' wbSrc.Worksheets("PO").Range("a1").PasteSpecial Paste:=xlValues

' wbSrc.Close False

' Application.CutCopyMode = False
' Application.ScreenUpdating = True

'Worksheets("Review").Activate
 
Re : code VBA qui copies les valeurs d'une plage dans un autre classeur

une autre petite victoire...

le code copie les valeurs dans la prochaine ligne vide:

Sub CopyOpenItems3333()

Dim nextrow As Long
Dim wbThis As Workbook
Dim wbSrc As Workbook
Application.ScreenUpdating = False

Set wbThis = ThisWorkbook
Set wbSrc = Workbooks.Open("O:\Financial\PO\Fichier destination (liste).xlsm)

wbThis.Worksheets("PO").Range("X20:AB35").Copy Destination:=Workbooks("Fichier destination (liste).xlsm").Sheets("PO").Range("A" & Rows.Count).End(xlUp).Offset(1)

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub

bon reste à faire mon bout de code qui va seulement copier les valeurs des lignes s'il y a une valeur dasn la colonne AA. Dans le fond c'est que si mon PO contient seulement 2 lignes de produits ma formule va copier même les valeurs nuls... je peux les supprimer à la main mais si je veux un vrai bon code VBA qui me sauve du temps ça serait génial de pouvoir insérer ce code... Avez-vous une piste pour moi car j'ai vraimenet aucune idée comment faire ça...Merci à l'avance!

Boucledor
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
982
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
862
Retour