IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

recherche emplacement d'une date dans une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut recherche emplacement d'une date dans une autre feuille
    Salut les spécialistes,

    Voici mon problème:

    dans mon classeur excel j'ai deux feuilles:
    Dans la première feuille et dans la colonne A des dates depuis le premier janvier jusque à la fin de l'année de cette manière et avec ce format:
    2009.01.01. 00:00
    2009.01.01. 00:15
    2009.01.01. 00:30
    2009.01.01. 00:45
    2009.01.01. 01:00
    2009.01.01. 01:15
    2009.01.01. 01:30
    2009.01.01. 01:45
    2009.01.01. 02:00
    2009.01.01. 02:15
    2009.01.01. 02:30
    2009.01.01. 02:45
    2009.01.01. 03:00
    2009.01.01. 03:15
    2009.01.01. 03:30
    2009.01.01. 03:45....


    Dans la deuxième feuille et dans la colonne A j'ai des dates de cette manière et avec ce format(il y a trois cellules entre chaque date) :
    01.01.2009 00:30



    01.01.2009 01:30



    01.01.2009 02:30



    01.01.2009 03:30



    01.01.2009 04:30



    01.01.2009 05:30



    01.01.2009 06:30



    01.01.2009 07:30



    01.01.2009 08:30



    01.01.2009 09:30....

    Dans la colonne B en face de chaque date il y a une valeur quelconque.

    Voici mon problème, j'aimerai prendre les valeurs de la deuxième feuille et les coller en face de leur date correspondante dans la première feuille. Mais le problème est que la date de la feuille deux peux commencer par n'importe quelle date. donc j'aimerais un code qui me colle mes donnée enfonction de la date départ de la deuxième feuille.

    comme je suis super nul en vba je demande de l'aide au spécialiste.
    j'avais commencer un bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cella1 = Cells(1, 1)
    trouvé1 = Worksheets("transformation").Range("A:A").Find(CDa t
    (cella1))
    c'est zéro

    Mon idée était de trouvé le lieu de la date dans la feuille 1 qui correpond à la à la date de la première cellule de la feuille 2 comme ça on sait où on doit coller nos valeurs, mais il y a des problèmes de format de dates...

    merci pour votre aide

  2. #2
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    tu n'as pas besoin de faire du VBA, fait une rechercheV.
    par contre, il faudrait que tu mettes tout sous le meme format de date, histoire de pas avoir de surprises.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut re
    Salut Nako_lito,

    le problème est que j'aurais voulu automatiser la chose vu que je dois répété ce processus des milliers de fois. j'aurais voulu avec un bouton qu'il me mette les valeurs au bonne endroit.

    merci

  4. #4
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    fait une méthode avec une boucle dedans qui exécute une recherche V.
    mais je saisis mal ta demande, t'as 1000 fichiers a traiter ou t'a juste une recherche V a exécuter 1000 fois ?

    si c'est le premier cas, ca va etre plus long, si c'est le second, tu fait une boucle for each cellules dans la plage définit = résultat de la rechercheV.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut re
    re,
    j'ai peux être été pas assez precis mais mon but c'est vraiment de trouver le numéro de cellule de la cellule correspondant à la date en A1 de l'autre feuille.

    En fait dans mon fichier dans la deuxième feuille j'ai une quarantaine de fois le shéma de la colonne A et B dans les autres colonnes donc j'ai en fait une quarantaine d'années de valeurs. Je déplace pour chaque années les valeurs dans la feuille 1. A Chaque années qui est faite je supprime A et B de la feuille 2 et recommence avec une autre année. Et je fais ça des centaine de fois. Je sais pas si c'est plus claire maintenant.

    merci

  6. #6
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    to solution est d'appliquer une rechercheV et d'etirer la formule sur la plage voulue. Pas besoin de macro pour ca.

    pour etirer une formule ou une case, tu mets ton curseur sur le coin inférieur droit, le curseur change pour une croix, tu clic et tu tire ou tu veux et ca appliquera la formule en prennant en compte le changement de ligne ou de colonne.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut re
    Salut,merci pour ton aide,mais Je crois que je suis vraiment nul je comprends rien

    voici un petit exemple
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    première chose que je t'avais indiqué => passe le format de tes dates dans le meme format partout.

    Tu ne peux pas avoir 01/01/2010 12:30 d'un coté et 2010-01-01 12:30 de l'autre, c'est pas clair et en plus ca risque de planter la rechercheV.

    Ensuite, pour ton exemple.

    Tu te mets en B2 de ta feuille 1, et tu écrit ca dans ta cellule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(A2;data!$A$1:$B$5;2;FAUX)
    ensuite tu selectionne ta cellule B1 de ta feuille 1, tu vas sur le coin inférieur droit de B1, tu vois le curseur changer, tu clique et tu etire la selection jusqu'en bas de ton tableau.

    Alors pour info.
    dans la formule de la recherche V:

    fait référence au petit tableau que tu as fournis, si ta plage de cellule sur ta feuille 2 va jusqu'a B5000, tu change par $A$1:$B$5000.

    explication sur les recherche V
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut re
    super,

    ça marche pas mal, juste une petite question encore pour embêter, comment faire pour que lorsque je n'ai pas de valeur dans la deuxième feuille sa ne me mette pas de valeur dans la première feuille.

    merci

  10. #10
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    tu imbrique ta recherche V dans une condition:

    =si(rechercheV();rechercheV();"")
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut
    je vois le principe mais je ne sais pas quoi mettre dans la condition ça serait un truc du style, si il y a une cellule vide dans la colonne B

    désolé je suis pas très caler en excel

    J'ai remarqué un problème à la formule c'est quand je suis à la fin des données dans ma feuille deux la formule prend la dernière donnée et la recopie jusqu'à la fin de mon année dans la feuille une alors qu'il ne devrai pas avoir de valeur. Je comprends pas très bien.
    de plus comment on fais pour enlevé les #N/A?

    Merci

  12. #12
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    Citation Envoyé par wuging Voir le message
    je vois le principe mais je ne sais pas quoi mettre dans la condition ça serait un truc du style, si il y a une cellule vide dans la colonne B

    désolé je suis pas très caler en excel
    par exemple, ta valeur de cellule peut etre celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(=RECHERCHEV(A2;data!$A$1:$B$5;2;FAUX));"";=RECHERCHEV(A2;data!$A$1:$B$5;2;FAUX))
    Si le résultat de la recherche V est faux, il ne remplit pas, sinon il met le resultat de la recherche V

    J'ai quasiment le même probleme mais avec des départements au lieu de dates. le probleme, c'est que ce n'est pas sur 2 feuilles d'un même classeur mais sur 2 feuilles de deux classeurs différents. la rechercheV fonctionne t'elle aussi (je pense que non)?

    Cdt
    La recherche V fonctionnera a condition que le fichier d'ou provienne les infos (l'equivalent de ta feuille 2) soit ouvert. Sinon il ne pourra pas mettre les données a jour et ca mettra #DIV ou #N/A partout.

    J'ai remarqué un problème à la formule c'est quand je suis à la fin des données dans ma feuille deux la formule prend la dernière donnée et la recopie jusqu'à la fin de mon année dans la feuille une alors qu'il ne devrai pas avoir de valeur. Je comprends pas très bien.
    Envois un exemple, par ce que c'est pas très clair.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  13. #13
    Futur Membre du Club
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Points : 7
    Points
    7
    Par défaut re
    Voici, un petit exemple pour te donnée une idée sinon la nouvelle formule que tu m'a donnée marche c'est super
    merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo