Copie des données d'une feuille via macro [Résolu/Fermé]

Signaler
Messages postés
42
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015
-
f894009
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
-
Bonjour,

Je sollicite à nouveau votre aide. Je dois réactualiser, régulièrement des données d'un fichier excel. Pour clà, j'ai créé la macro ci-dessous. Le hic c'est qu'il va bien me chercher les bonnes données mais qu'il les copie dans un nouveau classeur au lieu de le copier dans le classeur de départ (classeur_principal, dans le code). De plus, j'aimerais qu'il garde la même mise en page. Qui peut m'apporter la solution ? D'avance merci

Sub Mise_a_jour_PAA_VLT()

'
' Mise à jour PAA_VLT
'


Dim wbMyWb As Workbook
Dim Nom_Classeur As Variant
Dim Classeur_principal As Variant

Dim Faeff As String

Faeff = "PAA-VLT"

Classeur_principal = ActiveWorkbook.Name

If MsgBox("Voulez vous mettre à jour la liste des remarques VLT ? ", vbYesNo) = vbYes Then
            Effacer_données_feuille (Faeff)     ' efface les données de la feuille PAA-VLT
            ' ChDir "C:\xxxx\yyyy\fichier.xls"  pour imposer un répertoire spécifique
            Nom_Classeur = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls") ' recherche du fichier de données
            If Nom_Classeur <> False Then
                Set wbMyWb = Workbooks.Open(Nom_Classeur)
                wbMyWb.Activate
            End If
            
                wbMyWb.Sheets(Faeff).Copy   'Copie les données de la feuille du classeur choisi
                Workbooks(Classeur_principal).Worksheets("PAA-VLT").Activate
                Cells(1, 1).Select
                ' ThisWorkbook.Sheets(Faeff).Activate  ' Met à jour les données dans le fichier initial
                ' ActiveSheet.Paste
                Selection.PasteSpecial Paste:=xlPasteValues
                
            'fermeture classeur
            wbMyWb.Activate
                      
            wbMyWb.Close False 'fermeture classeur sans sauvegarde (True si sauvegarde)
            
    Else
            
End If
 
        
End Sub

3 réponses

Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1207
Bonjour,

Sub Mise_a_jour_PAA_VLT()
Dim wbMyWb As Workbook
Dim Nom_Classeur As Variant
Dim Classeur_principal As Variant

Dim Faeff As String

Application.ScreenUpdating = False

Faeff = "PAA-VLT"

Classeur_principal = ActiveWorkbook.Name

If MsgBox("Voulez vous mettre à jour la liste des remarques VLT ? ", vbYesNo) = vbYes Then
'Effacer_données_feuille (Faeff) ' efface les données de la feuille PAA-VLT
' ChDir "C:\xxxx\yyyy\fichier.xls" pour imposer un répertoire spécifique
Nom_Classeur = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls") ' recherche du fichier de données
If Nom_Classeur <> False Then
Set wbMyWb = Workbooks.Open(Nom_Classeur)
Else
MsgBox " Pas de fichier selectionne!!!!"
Exit Sub
End If
Worksheets(Faeff).Cells.Copy 'Copie les données de la feuille du classeur choisi
Workbooks(Classeur_principal).Worksheets("PAA-VLT").Activate
Cells(1, 1).Select
Application.DisplayAlerts = False
Selection.PasteSpecial Paste:=xlPasteAll
Application.DisplayAlerts = True
'fermeture classeur
wbMyWb.Close False 'fermeture classeur sans sauvegarde (True si sauvegarde
End If
End Sub
reno421
Messages postés
42
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015

f894009 ,

Merci pour ta réponse rapide. J'ai essayé, je comprends ton code mais quand je test, au lieu de venir replacer dans les données copiées dans le fichier de départ 'a', il les copie dans un fichier 'c'

En essayant d'âtre plus clair.
Je suis dans le fichier 'a'
J'ouvre via la macro le fichier 'b'
je copie les données de la feuille 'VAA-VLT'
je dois revenir dans le fichier 'a' pour les coller
je ferme le fichier 'b'

hors, ce qu'il ce passe c'est qu'il ouvre un fichier 'c' fait la copie puis ferme le fichier 'b'.

Je ne comprends pas pourquoi.

Merci pour ton aide
f894009
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1207 > reno421
Messages postés
42
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015

Re,

je comprends ton code
Ben c'est quand-meme au moins 95% du votre, alors .........

hors, ce qu'il ce passe c'est qu'il ouvre un fichier 'c' J'ai fait pas mal de tests et je n'ai pas de fichier 'c'!!!!!!!!!!!!!
Je ne vois pas par quel "miracle" ce fichier peut s'ouvrir ?????

Faites une recopie d'ecran de facon a voir ce fameux ficher 'c'
reno421
Messages postés
42
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015

en fait il crée un nouveau fichier qu'il appelle : classeurxx.xls

ou xx est le numéro du fichier, 1iere exécution de la macro-> 1, 2ième ->2, ...

je ne comprends pas
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1207
Re,

ai ajouter obligation remplir cellules sur deplacement dans feuille

http://cjoint.com/?EBfqGlFogdk

A+
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1207
Re,

ou xx est le numéro du fichier, 1iere exécution de la macro-> 1, 2ième ->2, ...
Y a pas de generation spontanee. Mettez votre fichier a dispo, car dans le code, il n'y pas de creation de classeur ni d'ouverture d'un troisieme