Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Récupération valeurs d'un fichier vers un autre vba

Quicksland

XLDnaute Occasionnel
Bonjour le forum

Je souhaiterai récupérer les valeurs " fichier pot " toute la colonne a partir "E4" vers "E4" du fichier " prix de revient "

et également pour toute la colonne "N4 " du " fichier pot " vers "C4" du fichier " prix de revient "

Je vous remercie d'avance pour les réponses
 

Pièces jointes

  • GESTION - POTS.xlsm
    318.2 KB · Affichages: 10
  • Prix de revient.xlsm
    371.5 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Quicksland,
Un essai en PJ à tester.
La macro à lancer est "Importer"
A noter qu'il y aura surement un problème de février année bissextile vers année non bissextile.
 

Pièces jointes

  • Prix de revient (1).xlsm
    371.1 KB · Affichages: 1

Quicksland

XLDnaute Occasionnel
Bonsoir Quicksland,
Un essai en PJ à tester.
La macro à lancer est "Importer"
A noter qu'il y aura surement un problème de février année bissextile vers année non bissextile.
Bonsoir @sylvanu

Merci pour ta réponse

Il y a un petit soucis quand même

"N4 " du " fichier pot " vers "C4" du fichier " prix de revient "

et non " N4" vers " N4 "

Merci pour ton aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oups! C'est comme à l'école : quand tu lis mal les consignes, t'as une gamelle !
Il suffit de remplacer
VB:
Sheets(F.Name).Range("N4:C" & NL).PasteSpecial xlPasteValues
par
Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues
 

Pièces jointes

  • Prix de revient (V2).xlsm
    366.3 KB · Affichages: 3

Quicksland

XLDnaute Occasionnel
Bonjour @sylvanu

Je reviens vers toi ...

Apres modification du fichier les données ont changé

"GESTION-POTS " vers "PRIX DE REVIENT"

Toute la colonne de :

"C4" vers "C4"
"E4" vers "E4"
"F4" vers "F4"
"G4" vers "G4"
"H4" vers "H4"

J'ai réduit le fichier a 6 mois car trop volumineux en PJ

Merci pour ton aide
 

Pièces jointes

  • GESTION - POTS.xlsm
    311.4 KB · Affichages: 1
  • PRIX DE REVIENT.xlsm
    676.3 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Il vous suffit d'adapter le code.
Pour transférer d'une colonne à une autre il suffit de faire par ex de C4 vers C4 :
VB:
DL = Sheets(F.Name).Range("C65500").End(xlUp).Row - 1
.Range("C4:C" & DL).Copy
Et recopier ces deux lignes pour vos 5 transferts.
 

Quicksland

XLDnaute Occasionnel
Re,
VB:
DL = Sheets(F.Name).Range("E65500").End(xlUp).Row - 1
                .Range("C4:C" & DL).Copy
                Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues

Cela donne ça alors ?
 

Quicksland

XLDnaute Occasionnel
Oui, et vous répétez pour les 5 colonnes.
Ok !

C'est bien ce que j'avais compris mais pourtant cela ne fonctionne pas
VB:
Private Sub CommandButton2_Click()

    Application.ScreenUpdating = False
    NomFichier = "GESTION - POTS.xlsm"
    FichierCourant = ThisWorkbook.Name
    Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
    Workbooks(FichierCourant).Activate
    For Each F In Worksheets
        If Sheets(F.Name).[E2] = "Coût solide / Prestation" Then
            With Workbooks(NomFichier).Sheets(F.Name)
                DL = Sheets(F.Name).Range("E65500").End(xlUp).Row - 1
                .Range("C4:C" & DL).Copy
                Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues
                .Range("E4:E" & DL).Copy
                Sheets(F.Name).Range("E4:E" & DL).PasteSpecial xlPasteValues
                .Range("F4:F" & DL).Copy
                Sheets(F.Name).Range("F4:F" & DL).PasteSpecial xlPasteValue
                 .Range("G4:G" & DL).Copy
                Sheets(F.Name).Range("G4:G" & DL).PasteSpecial xlPasteValue
                .Range("H4:H" & DL).Copy
                Sheets(F.Name).Range("H4:H" & DL).PasteSpecial xlPasteValue
        
            End With
        End If
    Next F
    Application.CutCopyMode = False
    Workbooks(NomFichier).Close Savechanges:=False
End Sub

Merci pour ton aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Dans l'ordre,
1- Par sécurité je vérifier que sur la feuille en E2 il y avait "Coût solide / Prestation" .
maintenant ce n'est plus le cas, donc ça ne pouvait pas marcher. J'ai remplacé par "Format".
2- Comme les colonnes sont vides, DL vaut 2, et avec C4:C2 ça ne marche pas.
J'ai rajouté :
VB:
If DL < 4 Then DL = 4
3- C'est inutile de recopier le code sur toutes les pages, c'est source d'erreur en cas de maintenance, on est sur d'oublier une page.
Donc dans chaque page j'ai mis :
Code:
Private Sub CommandButton2_Click()
    Importer
End Sub
Et en macro classique :
Code:
Sub Importer()
    Application.ScreenUpdating = False
    NomFichier = "GESTION - POTS.xlsm"
    FichierCourant = ThisWorkbook.Name
    Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
    Workbooks(FichierCourant).Activate
    For Each F In Worksheets
        If Sheets(F.Name).[E2] = "Format" Then
            With Workbooks(NomFichier).Sheets(F.Name)
                DL = Sheets(F.Name).Range("E65500").End(xlUp).Row - 1
                If DL < 4 Then DL = 4
                .Range("C4:C" & DL).Copy
                Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues
                .Range("E4:E" & DL).Copy
                Sheets(F.Name).Range("E4:E" & DL).PasteSpecial xlPasteValues
                .Range("F4:F" & DL).Copy
                Sheets(F.Name).Range("F4:F" & DL).PasteSpecial xlPasteValues
                .Range("G4:G" & DL).Copy
                Sheets(F.Name).Range("G4:G" & DL).PasteSpecial xlPasteValues
                .Range("H4:H" & DL).Copy
                Sheets(F.Name).Range("H4:H" & DL).PasteSpecial xlPasteValues
            End With
        End If
    Next F
    Application.CutCopyMode = False
    Workbooks(NomFichier).Close Savechanges:=False
End Sub
 

Pièces jointes

  • PRIX DE REVIENT.xlsm
    744.4 KB · Affichages: 4

Quicksland

XLDnaute Occasionnel
Re bonsoir @sylvanu

Cela fonctionne très bien mais il y a un petit soucis car cela fonctionne juste sur la première ligne
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
248
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…