Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
811 connectés 

  FORUM HardWare.fr
  Hardware
  Bench

  VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA

n°10421392
ludo1638
Posté le 03-09-2018 à 18:13:53  profilanswer
 

Bonjour à tous,
 
J'ai besoin d'aiiiiide svp  :sweat:  
 
Je n'arrive pas a faire une macro.
 
J’ai 6 fichiers :
• 5 qui sont mes sources : B1, B2, B3, B4, B5
‐ L’emplacement de mes données sont toujours au même endroit dans chaque fichier :  
‐ Feuil1/ (F6:F46)
• 1 qui est ma cible (ou je veux coller mes données)
‐ Les emplacements sont différent : TdB B1/(F6 :F46) ; TdB B2/(F6 :F46) ;(…) ; TdB B5/(F6 :F46)
 
Mon objectif en activant ma macro :
Faire s’ouvrir les 5 fichiers sources et copier/coller aux emplacements ci-dessus puis fermer les fichiers sources.
 
Un grand merci pour votre aide et votre soutien pour mes début en VBA
 
Ludo

mood
Publicité
Posté le 03-09-2018 à 18:13:53  profilanswer
 

n°10421439
charognard​37
Vivement la retraite !
Posté le 03-09-2018 à 19:01:06  profilanswer
 

Bonjour
 
Tu copie/colle ça dans un nouveau Module sur le fichier de synthèse
Avec quelques commentaires fournis en explication
A noter : il faut que Les onglets 'TdB B1', 'TdB B2' …. existent
 

Const Chemin = "C:\Users\XXX\Documents\"                   'A changer par ton répertoire
Sub HARDWARE()                                             'Il fallait bien un nom !
    CopiePlage "B1.xlsx", "Feuil1!F6:F46", "'TdB B1'!F6"   'Copie des données de B1
    CopiePlage "B2.xlsx", "Feuil1!F6:F46", "'TdB B2'!F6"   'Copie des données de B2
    CopiePlage "B3.xlsx", "Feuil1!F6:F46", "'TdB B3'!F6"   'Copie des données de B3
    CopiePlage "B4.xlsx", "Feuil1!F6:F46", "'TdB B4'!F6"   'Copie des données de B4
    CopiePlage "B5.xlsx", "Feuil1!F6:F46", "'TdB B5'!F6"   'Copie des données de B5
End Sub
 
'Definition de la procédure de copie
Private Sub CopiePlage(Fichier, Plage, Destination)
    Workbooks.Open Filename:=Chemin & Fichier              'Ouvre un fichier
    Range(Plage).Copy                                      'Sélection et copie de la plage
    ActiveWindow.Close (False)                             'Fermeture du fichier
    Range(Destination).PasteSpecial                        'Sélection de la destination et copie des cellules
End Sub


 
 
Conseils :
- Ajoute l'onglet développeur en allant dans le menu Fichier/Options/Personnaliser le ruban
- N'oublie pas que même si tu ne sais pas trop programmer tu peux faire 'Enregistrer une macro', faire ta séquence à la mano, Arréter l'enregistrement et tu aura ton code quasi fait.


Message édité par charognard37 le 04-09-2018 à 07:12:46
n°10421656
charognard​37
Vivement la retraite !
Posté le 04-09-2018 à 03:03:47  profilanswer
 

Voici une autre version qui n'ouvre pas les fichiers
 

Const Chemin = "C:\Users\XXX\Documents\"                   'A changer par ton répertoire
Sub HARDWARE()                                             'Il fallait bien un nom !
    CopiePlage "B1.xlsx", "Feuil1", "TdB B1"               'Copie des données de B1
    CopiePlage "B2.xlsx", "Feuil1", "TdB B2"               'Copie des données de B2
    CopiePlage "B3.xlsx", "Feuil1", "TdB B3"               'Copie des données de B3
    CopiePlage "B4.xlsx", "Feuil1", "TdB B4"               'Copie des données de B4
    CopiePlage "B5.xlsx", "Feuil1", "TdB B5"               'Copie des données de B5
End Sub
 
'Definition de la procédure de copie
Private Sub CopiePlage(Fichier, Origine, Destination)
    ThisWorkbook.Names.Add Name:="plage", RefersTo:="='" & Chemin & "[" & Fichier & "]" & Origine & "'!$F$6:$F$46"
    With Sheets(Destination)
        .[F6:F46] = "=plage"
        .[F6:F46].Copy
        Sheets(Destination).Range("F6" ).PasteSpecial xlPasteValues
    End With
End Sub


Message édité par charognard37 le 04-09-2018 à 03:09:31
n°10421722
ludo1638
Posté le 04-09-2018 à 09:48:23  profilanswer
 

Merci pour ton aide, j'avoue ne pas tout saisir… mais je vais me pencher sur l

n°10421723
ludo1638
Posté le 04-09-2018 à 09:50:58  profilanswer
 

Merci pour ton aide Charognard37,  
j'avoue ne pas tout saisir… mais je vais me pencher sur la question :)
 
Sais tu ouvrir un fichier excel en macro stp ? (qui est sur un lien Dropbox)

n°10422158
charognard​37
Vivement la retraite !
Posté le 04-09-2018 à 17:52:02  profilanswer
 

Sauvegarde en XLSM

n°10422180
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 04-09-2018 à 18:22:04  profilanswer
 

Je suis pas sur mais à mon avis la question n a rien à voir avec le hardware


---------------
#mais-chut
n°10422229
jean pierr​e
Posté le 04-09-2018 à 19:06:10  profilanswer
 

https://forum.hardware.fr/hfr/Progr [...] ujet-1.htm
 
un indice pour lieu plus adapter


---------------
Jean Pierre
n°10422238
charognard​37
Vivement la retraite !
Posté le 04-09-2018 à 19:15:13  profilanswer
 

Z_cool a écrit :

Je suis pas sur mais à mon avis la question n a rien à voir avec le hardware


Un vague rapport quand même !
VBA --> Excel --> Microsoft  --> Windows --> Intel --> Processeur --> Hardware
 
Remarque ça marche aussi pour
VBA ---> Excel --> Tableur --> Lotus --> Papier toilette --> Caca mou --> Kamolox


Message édité par charognard37 le 04-09-2018 à 19:16:17
n°10422861
ludo1638
Posté le 05-09-2018 à 17:40:19  profilanswer
 

Merci pour le lien :) Vous le voyez j'étais vraiment pas sur la bonne voie :) Quoi qu'il en soit merci pour les conseils ! ca fonctionne maintenant.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Hardware
  Bench

  VBA

 

Sujets relatifs
VBA : MACRO pour copier des lignes sous conditionRegistre à décallage VBA
Excel 2007 VBA Aide formule simpleProblème codage VBA
Création d'une action en VBA Excel - Besoin d'aideCode VBA pour majuscules qui plante
pb d'incompatibilité de type sous Vba 
Plus de sujets relatifs à : VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR