Procédure de recherche par code VBA Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
tifan
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 11 septembre 2014
Version d'Excel : 2007

Message par tifan » 24 mai 2016, 13:57

Bonjour,

Je suis à la recherche d'un code vba me permettant de remplir autmatiquement des cellules. Je vais tenter de m'expliquer par rapport au fichier joint :
sur l'onglet "Feuil1" se trouve différentes colonnes avec des renseignements. J'ai actuellement créé un code pour déclencher une action en double cliquant sur certaines cellules. Ce code n'est actif pour le moment que sur les cellules de la colonne AJ. En double cliquant dessus cela ouvre le second onglet "CUI" avec certains champs qui se remplissent : Nom de l'EVS, Nom de l'enfant, Ecole et Nbre d'heures.

Je souhaite que lors de cette ouverture, la seconde ligne devrait se remplir si le nom indiqué dans la cellule C12 (nom de l'EVS) est retrouvé dans une case de la colonne AJ ou AN du premier onglet (Feuil1).

En fait cela permet de savoir quels sont les élèves qui sont avec l'EVS.

J'ai renseigné dans le tableau un exemple avec CAA qui est avec CA et LS.

J'espère être assez clair, n'hésitez pas à me poser des questions au besoin.

Merci d'avance
diplomeauto.xlsm
(175.54 Kio) Téléchargé 19 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'227
Appréciations reçues : 105
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 25 mai 2016, 08:18

Bonjour,
Je souhaite que lors de cette ouverture, la seconde ligne devrait se remplir si le nom indiqué dans la cellule C12 (nom de l'EVS) est retrouvé dans une case de la colonne AJ ou AN du premier onglet (Feuil1).
En lisant la demande, pas sur d'avoir compris.

La seconde ligne ... il s'agit de E14, F14 et G14 ??

Exemple, double clique en AJ5 de la feuil1, cela renvoie les données de D5 etc... dans la feuille CUI. Que doit-on trouver en ligne 14 de cette feuil1 ?

Sinon beau fichier mais attention aux cellules fusionnées et aux objets (case à cocher) dans les feuilles. A éviter lorsque l'on fait de la programmation VBA. Cela fait plus joli, mais il arrive toujours un problème.

Crdlt
@+ Dan ;)
t
tifan
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 11 septembre 2014
Version d'Excel : 2007

Message par tifan » 25 mai 2016, 10:25

désolé d'être confus.

sur AJ5 ça ne fonctionne pas dans cet exemple.

Prenons un double click sur AJ4 (CAA). A ce moment là :
_ en ligne 12 de CUI s'affiche --> CA/CLG PABLO NERUDA BEGLES/15
_ en ligne 14 de CUI devrait s'afficher --> LS/EEPU GAMBETTA BEGLES/15

(nous retrouvons CAA à deux endroits du tableau, je souhaiterais que cela apparaisse dans l'onglet CUI lorsque je duble clique dessus)
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'227
Appréciations reçues : 105
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 25 mai 2016, 13:04

re

Remplacez le code dans la feuil1 par celui ci-après
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim derLn As Integer, ln As Integer
derLn = Range("AJ" & Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range("AJ1:AJ" & derLn)) Is Nothing And Target <> "" Then
ln = Range("AN1:AN" & derLn).Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True).Row
    With Sheets("CUI")
        .Range("C12") = Range("AJ" & Target.Row)
        .Range("E12") = Range("D" & Target.Row)
        .Range("F12") = Range("BA" & Target.Row)
        .Range("G12") = Range("AK" & Target.Row)
        If ln > 0 Then
            '.Range("C14") = Range("AJ" & ln)
            .Range("E14") = Range("D" & ln)
            .Range("F14") = Range("BA" & ln)
            .Range("G14") = Range("AK" & ln)
        End If
        .Activate
    End With
    End If
End Sub
Le remplissage de C14 est désactivé puisque la cellule est fusionnée et dans ce cas la deuxième partie du code écraserait la donnée actuelle.

Si ok, merci de clôturer le fil en cliquant sur le V vert à coté du bouton EDITER lors de votre réponse

Crdlt
@+ Dan ;)
t
tifan
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 11 septembre 2014
Version d'Excel : 2007

Message par tifan » 25 mai 2016, 15:56

Super ça avance au top.

Mais ça ne fonctionne pas avec tout apparemment, j'ai remis le fichier en pièce jointe avec ce nouveau code et j'ai enlever les cellules fusionnées :
_ si je double clic sur AJ2 (AVS 01), cela marche nickel
_ si je double clic sur AJ3 (AVS 02), cela marche bien mais cela me laisse sur la feuille CUI les données en deuxième ligne d'AVS 01 (quand je fais un double clic sur AJ2), est-il possible de "vider" les champs de l'onglet CUI à chaque double clic sur Feuil1
_ si je double clic sur AJ4, AJ5 ... cela me met "erreur d'exécution 91"
--> sur AJ4, cela doit récupérer la ligne 4 et la ligne 5 (AVS 04)
--> sur AJ5, cela doit se lancer comme pour AJ3 (AVS 02)

Petite question subsidiaire : est-il possible que les cellules A2 et B2 de l'onglet CUI puissent se remplir automatiquement ? Actuellement il faut double cliquer dessus pour que cela mette la date et l'heure du moment.
diplomeauto.xlsm
(169.2 Kio) Téléchargé 12 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'227
Appréciations reçues : 105
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 26 mai 2016, 08:10

re,
-> sur AJ5, cela doit se lancer comme pour AJ3 (AVS 02)
Sur AJ5, il y a AVS5 qui n'est pas trouvé ni en en AN ou en AJ. J'en déduit que la ligne 13 en feuille CUI ne doit rien avoir comme info. Juste ?

Une question aussi, se peut-il que l'on trouve l'info 3 fois ? Exemple : en ligne 4 et 5 colonne AJ, on AVS04. Est-il possible de trouver AVS04 aussi en colonne AN ou dans une autre ligne de la colonne AJ. En gros on aurait 3 AVS04. Si oui cela pose un souci au niveau de la feuille CUI quine comporte que deux lignes (12 et 13)

Crdlt
@+ Dan ;)
t
tifan
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 11 septembre 2014
Version d'Excel : 2007

Message par tifan » 26 mai 2016, 16:15

Pour AJ5 :

en fait NOM 3 PRENOM 3 et NOM 4 PRENOM 4 sont tous les deux avec AVS 04. Donc la feuille en CUI doit comporter ces deux personnes.
AVS 05 n'intervenant que pour NOM 5 PRENOM 5 dans mon exemple de tableau.

Effectivement il peut se trouver que AVS se retrouve sur 3 personnes. Je rajoute la ligne dans mon fichier joint.
diplomeauto.xlsm
(172.22 Kio) Téléchargé 10 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'227
Appréciations reçues : 105
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 27 mai 2016, 12:37

Re

Ok mais là se pose une autre question, combien de fois peut-on avoir la même info à récupérer. 3 x fois maximum ou plus
Il faut prévoir cela avant de faire le code. Si ce n'est pas déterminé, il faudra que le code prévoit l'ajout des lignes dans la cellules CUI au préalable

Merci de votre info avant de continuer

Crdlt
@+ Dan ;)
t
tifan
Jeune membre
Jeune membre
Messages : 35
Inscrit le : 11 septembre 2014
Version d'Excel : 2007

Message par tifan » 27 mai 2016, 16:18

normalement 4 fois serait le maximum.

merci pour l'aide
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'227
Appréciations reçues : 105
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 30 mai 2016, 08:52

Re

Ok alors il vaut mieux que le document final soit préparé à l'avance. Possible cela ?

Crdlt
@+ Dan ;)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message