VBA: Copier valeur en fonction de la date du jour [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016
-
alexysr
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016
-
Bonjour,

J'aimerais savoir s'il est possible d'obtenir votre aide pour un morceau de code VBA ?

Avant je vous décri comment est mon fichier B, une colonne A dans laquelle il y a toutes les dates de l'année et des colonnes B,C,D... dans laquelle sont des valeurs.

Alors je vous explique, j'aimerais copier une valeur d'un fichier A vers un fichier B, et la coller dans la colonne B du fichier B, mais dans la ligne correspondante à la ligne de la colonne A avec la date du jour.

Je sais pas si je me suis exprimé de manière claire ou pas :s

En tout cas j'espère que vous serez en mesure de m'aider.

Bonne fin de weekend à vous! :)

9 réponses

Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
991
Bonjour,
Il est possible que le VBA ne soit pas nécessaire !
A quoi correspond le fichier A et B. 2 classeurs ou 1 classeur avec les fichiers A et B sur feuilles séparées... ?

Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Bonjour,

Si car ce sera une partie d'un code dans lequel il y aura un grand nombre d'opérations.
Deux classeurs différents.

Merci
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
991
Bonjour,
Eh bien dans ce cas c'est vous qui savez. Je ne peux rien faire de plus sans explication plus cohérente.
Désolé.

Messages postés
115
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
7
Bonjour,

Essayes cette boucle :

Sub transfert()
Nom_FichierA = "" 'Indiquer le Nom dans les guillemets
Nom_FichierB = "" 'Indiquer le Nom dans les guillemets

Nb_LigA = Workbook(Nom_FichierA).Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row 'il est nécessaire que l'onglet soit en première position du fichier A
Nb_LigB = Workbook(Nom_FichierB).Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row 'il est nécessaire que l'onglet soit en première position du fichier B

DepartA = 2 'en supposant que les date débutent en ligne 2 du fichier A
DepartB = 2 'en supposant que les date débutent en ligne 2 du fichier B

For i = DepartA To Nb_LigA
Ref_DateA = Workbook(Nom_FichierA).Sheets(1).Cells(i, 1).Text
For u = DepartB To Nb_LigB
Ref_DateB = Workbook(Nom_FichierB).Sheets(1).Cells(u, 1).Text

If Ref_DateA = Ref_DateB Then
Workbook(Nom_FichierB).Sheets(1).Cells(u, 2) = Workbook(Nom_FichierA).Sheets(1).Cells(i, 2)
Exit For
End If
Next u
Next i
End Sub

N'oublies pas de copléter le nom des fichiers
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Bonjour,

Tous d'abord merci pour cette réponse WeaponEDGE!
Ensuite je tiens à m'excuser pour le manque de clarté de ma question et information.

Je récapitule:

J'ai un fichier Alpha dans lequel plusieurs filtres sont appliqués à un tableau croisé dynamique se trouant dans l'onglet "Feuil4". Ce résultat qui est une valeur numérique (se trouve on va dire dans la colonne A ligne 10) doit être copié dans le Fichier Beta dans l'onglet "Manquant".

Le fichier Beta, onglet "Manquant" est composé d'une colonne A dans laquelle sont tirés toutes les dates de l'année au jour le jour. Dans la colonne B doit rentrer la valeur copié; cependant cette valeur doit se coller dans la ligne correspondante à date du jour de la colonne A.

J'espère que cela est un peu plus claire :s

Merci encore!
Le Pingou
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
991
Bonjour,
En lisant ceci:
J'ai un fichier Alpha dans lequel plusieurs filtres sont appliqués à un tableau croisé dynamique se trouant dans l'onglet "Feuil4".
Je me pose la question si c'est faisable pour récupérer la valeur dans un TCD ..(la colonne de référence peut variée selon les fitres...?
Salutations
Le Pingou
WeaponEDGE
Messages postés
115
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
7
Bonne remarque.
Mais vu que le résultat final semble se trouver sur une cellule fixe à savoir la cellue A10 du coup ça devient faisable.
Après il se peut qu'Alexysr n'est pas donné tous les paramètres variable, dans ce cas je peux pas les inventer.
alexysr
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Oui effectivement le résultat ne se trouvait pas dans la même case à chaque fois, mais j'avais déjà résolu en fixant le résultat à s'afficher dans une case précise.

Merci pour cette remarque, je n'avais pas bien précisé, je vous tiens au courant quand j'aurais incorporé cetet partie au code
alexysr
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Salut,

Il y a un problème avec le workbook :s j'ai jsute fait un test rapide
je regarderai en détail;

je suis sur une version 2007
alexysr
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Merci Le Pingou,
J'ai bien mis le "s" mais maintenant il me dit que l'indice n'appartient pas à la sélection.

 Nom_FichierA = "data_140916test" 'Indiquer le Nom dans les guillemets
Nom_FichierB = "KPI général_V2test" 'Indiquer le Nom dans les guillemets
ShtA = "Tableau croisé dynamique6" 'Nom de la Feuille du Fichier A
ShtB = "data mqt" 'Nom de la Feuille du Fichier B

Valeur_A_Copier = Workbooks(Nom_FichierA).Sheets(ShtA).Cells(14, 1)
Date_Du_Jour = Date

Nb_LigB = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(Rows.Count, 1).End(xlUp).Row

Depart = 2 'en supposant que les date débutent en ligne 2 du fichier B

For I = Depart To Nb_LigB
Ref_Date = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 1).Value
If Date_Du_Jour = Ref_Date Then
Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 2) = Valeur_A_Copier
Exit For
End If
Next I
Messages postés
9517
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
30 décembre 2019
991
Bonjour,
Sauf erreur il faut écrire ... Workbooks(.....) !
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Merci Le Pingou,
J'ai bien mis le "s" mais maintenant il me dit que l'indice n'appartient pas à la sélection.


Nom_FichierA = "data_140916test" 'Indiquer le Nom dans les guillemets Nom_FichierB = "KPI général_V2test" 'Indiquer le Nom dans les guillemets ShtA = "Tableau croisé dynamique6" 'Nom de la Feuille du Fichier A ShtB = "data mqt" 'Nom de la Feuille du Fichier B Valeur_A_Copier = Workbooks(Nom_FichierA).Sheets(ShtA).Cells(14, 1) Date_Du_Jour = Date Nb_LigB = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(Rows.Count, 1).End(xlUp).Row Depart = 2 'en supposant que les date débutent en ligne 2 du fichier B For I = Depart To Nb_LigB Ref_Date = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 1).Value If Date_Du_Jour = Ref_Date Then Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 2) = Valeur_A_Copier Exit For End If Next I
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

Désolé pour le message précédent, un problème est apparu :s

Merci Le Pingou,
J'ai bien mis le "s" mais maintenant il me dit que l'indice n'appartient pas à la sélection.


Nom_FichierA = "data_140916test" 'Indiquer le Nom dans les guillemets
Nom_FichierB = "KPI général_V2test" 'Indiquer le Nom dans les guillemets
ShtA = "Tableau croisé dynamique6" 'Nom de la Feuille du Fichier A
ShtB = "data mqt" 'Nom de la Feuille du Fichier B


Valeur_A_Copier = Workbooks(Nom_FichierA).Sheets(ShtA).Cells(14, 1)
Date_Du_Jour = Date

Nb_LigB = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(Rows.Count, 1).End(xlUp).Row

Depart = 2 'en supposant que les date débutent en ligne 2 du fichier B

For I = Depart To Nb_LigB
Ref_Date = Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 1).Value
If Date_Du_Jour = Ref_Date Then
Workbooks(Nom_FichierB).Sheets(ShtB).Cells(I, 2) = Valeur_A_Copier
Exit For
End If
Next I
Messages postés
24
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 avril 2016

C'est bon ça marche, !!



merci!!!!