Copie des données d'une feuille via macro

Résolu/Fermé
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015 - Modifié par pijaku le 5/02/2015 à 15:39
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 5 févr. 2015 à 16:37
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
A voir également:

3 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
5 févr. 2015 à 15:24
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
0
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015
5 févr. 2015 à 15:55
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
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710 > reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015
5 févr. 2015 à 16:19
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'
0
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015
5 févr. 2015 à 16:26
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
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
5 févr. 2015 à 16:22
Re,

ai ajouter obligation remplir cellules sur deplacement dans feuille

https://www.cjoint.com/c/EBfqGlFogdk

A+
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
5 févr. 2015 à 16:37
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
0