Macro qui copie des données d'un fichier pour les coller dans un autre fichier
Résolu
Dreampower75
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une question : j'ai essayé de trouver une programmation (voir tout en bas) qui réalise une tâche mais je n'y suis pas arrivé.
Je souhaite copier les données des onglets du fichier " FTE VBA " dans l'onglet "Données" du fichier FTE FINALE VBA de la manière décrite ci-dessous et présenté dans la 2ième capture d'écran :
1 - Fichier "FTE FINALE VBA" : la colonne F du mois => les 12 mois de l'année 2022 soient copiés pour chaque personne (01/01/2022, 02/02/2022... au 01/12/2022)
2 - Fichier "FTE FINALE VBA" : Colonne C et colonne D => le nom et le prénom de chaque personne soit copié à 12 reprises (car 12 mois de l'année)
3 - Fichier "FTE FINALE VBA" : la colonne B correspond à une formule => est-ce que la formule peut être copier à 12 reprises pour chaque personne
4 - Fichier "FTE FINALE VBA" : la colonne A => est-ce que la cellule correspondante à chaque personne dans le fichier FTE VBA (colonne C) peut être copier à 12 reprises pour chaque personne ?
Est-ce que la programmation VBA peut tenir compte des 2 onglets F102 et F104 du fichier " FTE VBA " ?
5 - Fichier "FTE FINALE VBA":est-ce que les données peuvent être copiés les uns en dessous des autres par la Macro ?
Merci de votre aide.
Le lien a été crée pour le fichier " FTE VBA " : https://www.cjoint.com/c/KKcresrSvae
Le lien a été crée pour le fichier " FTE FINALE VBA " : https://www.cjoint.com/c/KKcrhmkV7Le
fichier " FTE VBA "

Fichier FTE FINALE VBA

J'ai essayé avec le codage ci-après mais cela ne fonctionne pas.
Sub Maj()
Const Formule As String = "=IFERROR(G@/F@,0)"
Dim Bdd As Range, Destination As Range
Dim nbLignes As Long
With ThisWorkbook.Sheets("F101").Range("C11").CurrentRegion
Set Bdd = .Offset(2).Resize(.Rows.Count - 2)
End With
' nombre de lignes
nbLignes = Bdd.Rows.Count
' destination des nouvelles données
With ThisWorkbook.Sheets("Données").Range("A1").CurrentRegion
' Ligne suivante du tableau, retaillée au nombre de lignes
With .Offset(.Rows.Count).Resize(nbLignes)
' Transfert des valeurs.
.Columns(6).Value = mois 2021
.Columns(2).Resize(, 3).Value = Bdd.Columns(2).Resize(, 3).Value
.Columns(5).Value = Bdd.Columns(6).Value
.Columns(6).Value = Bdd.Columns(8).Value
.Columns(2).Formula = Replace(Formule, "@", .Row)
End With
End With
End Sub
J'ai une question : j'ai essayé de trouver une programmation (voir tout en bas) qui réalise une tâche mais je n'y suis pas arrivé.
Je souhaite copier les données des onglets du fichier " FTE VBA " dans l'onglet "Données" du fichier FTE FINALE VBA de la manière décrite ci-dessous et présenté dans la 2ième capture d'écran :
1 - Fichier "FTE FINALE VBA" : la colonne F du mois => les 12 mois de l'année 2022 soient copiés pour chaque personne (01/01/2022, 02/02/2022... au 01/12/2022)
2 - Fichier "FTE FINALE VBA" : Colonne C et colonne D => le nom et le prénom de chaque personne soit copié à 12 reprises (car 12 mois de l'année)
3 - Fichier "FTE FINALE VBA" : la colonne B correspond à une formule => est-ce que la formule peut être copier à 12 reprises pour chaque personne
4 - Fichier "FTE FINALE VBA" : la colonne A => est-ce que la cellule correspondante à chaque personne dans le fichier FTE VBA (colonne C) peut être copier à 12 reprises pour chaque personne ?
Est-ce que la programmation VBA peut tenir compte des 2 onglets F102 et F104 du fichier " FTE VBA " ?
5 - Fichier "FTE FINALE VBA":est-ce que les données peuvent être copiés les uns en dessous des autres par la Macro ?
Merci de votre aide.
Le lien a été crée pour le fichier " FTE VBA " : https://www.cjoint.com/c/KKcresrSvae
Le lien a été crée pour le fichier " FTE FINALE VBA " : https://www.cjoint.com/c/KKcrhmkV7Le
fichier " FTE VBA "

Fichier FTE FINALE VBA

J'ai essayé avec le codage ci-après mais cela ne fonctionne pas.
Sub Maj()
Const Formule As String = "=IFERROR(G@/F@,0)"
Dim Bdd As Range, Destination As Range
Dim nbLignes As Long
With ThisWorkbook.Sheets("F101").Range("C11").CurrentRegion
Set Bdd = .Offset(2).Resize(.Rows.Count - 2)
End With
' nombre de lignes
nbLignes = Bdd.Rows.Count
' destination des nouvelles données
With ThisWorkbook.Sheets("Données").Range("A1").CurrentRegion
' Ligne suivante du tableau, retaillée au nombre de lignes
With .Offset(.Rows.Count).Resize(nbLignes)
' Transfert des valeurs.
.Columns(6).Value = mois 2021
.Columns(2).Resize(, 3).Value = Bdd.Columns(2).Resize(, 3).Value
.Columns(5).Value = Bdd.Columns(6).Value
.Columns(6).Value = Bdd.Columns(8).Value
.Columns(2).Formula = Replace(Formule, "@", .Row)
End With
End With
End Sub
Configuration: Windows / Chrome 95.0.4638.54
A voir également:
- Macro qui copie des données d'un fichier pour les coller dans un autre fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,
Juste au passage, vous indiquez avoir essayer de construire un code mais en fait il n'y a strictement rien dans vos deux fichiers.
Dans ce cas c'est sans suite
Juste au passage, vous indiquez avoir essayer de construire un code mais en fait il n'y a strictement rien dans vos deux fichiers.
Dans ce cas c'est sans suite
Bonjour,
J'ai joint le fichier " FTE VBA " avec la Macro que j'ai commencé à programmé
Le lien a été crée : https://www.cjoint.com/c/KKdafLbuh75
Cordialement
J'ai joint le fichier " FTE VBA " avec la Macro que j'ai commencé à programmé
Le lien a été crée : https://www.cjoint.com/c/KKdafLbuh75
Cordialement