Menu

Recuperer les num de la ligne en fonction des nom prenom

Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
- - Dernière réponse : blalaa
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
- 14 mars 2019 à 11:40



Bonjour,






je souhaite creer un programme qui me permettra d'effectuer les taches suivantes :

-dans les cellules du cercle 5 je vais enregistrer manuellement des noms et prenoms qui peuvent etre change et remplacer a n'import quel moment (on va rajouter des nom prenom et on va aussi supprimer)

-dans le cercle 4 on trouve les numeros de chaque ligne enregistrer aussi manullement

- maintenant je veux creer un bouton qui va me permettre de :

si j'enregistre un nom prenom dans qlqonc ligne du cercle 1 (colonne A) (qui se trouve bien sur dans le cercle 5 colonne C ) mon programme va me chercher ce nom et prenom dans le cercle 5 (colonne C) et vas recuperer le numero de sa ligne (colonne B cercle 4) et le renvoyer a la ligne ou j'enregistre le nom prenom dans le cercle 2 (colonne B)

exemple :

-si je enregistre "Jerome CRIBIER " dans cellule A2 (qui se trouve a la cellule C29) , la cellule B2 va prendre le numero 6

un autre exemple

-si je enregistre "Jerome CRIBIER " dans la cellule A8 , la cellule B8 va prendre le numero 6

pour quoi numero 6 ? par ce que la ligne ou enregister "Jerome CRIBIER " dans le cercle 4 (cellule B29) est de 6

ainsi de suit pour tout les noms et prenom

PS : sachant que je vais ajouter des nouveau nom prenom et retirer aussi


je ne sais pas si c possible mais c serais vraiment tres gentille de votre part de maider dans mon projet de fin d'etude

je vous remerci

ps : si limage que j'ai partage ne se voit pas laisser moi un commentaire pour que je vous lenvoie par mail si vous voulez

merci encore
Afficher la suite 

Votre réponse

2 réponses

Messages postés
25046
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 mars 2019
1914
0
Merci
Bonjour,

Visiblement.. pour ce que tu demandes.. pas besoin de code vba ....
Une simple formule INDEX/EQUIV suffirait...

En B1 :

=INDEX(B$24:C$40;EQUIV(A2;C$24:C$40;0);1)

Formule à étirer vers le bas...

Bien entendu.. si tu ajoutes des noms dans ton cercle 5... il faudra adapter les plages de cellules
par exemple, avec 10 noms en plus :
B$24:C$50
C$24:C$50

blalaa
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
-
rebonjour

ca n'as pas marche , peut être je me suis mal exprime

je vais essayer d’être un peu plus claire :

les "nom prenom" qui seront enregistres dans les colonnes A des fois on les trouve different de ceux qui sont enregistrés dans les colonne C du cercle 5, exemple :

dans la cellule A2 j'enregistre le nom prénom " CRIBIER Jerome"
mais dans la colonne C29 on le voit qui enregistre inversement "Jerome CRIBIER"
ou encore celuis enregistre dans la cellule C29 est un peu different par exemple :
dans la colonne A2 je vais enregistrer " CRIBIER Jerome"
mais dans la colonne C29 on trouve "Jerôme CRIBIER" avec le o de Jerome qui est ecrit ô

c pour ca c n 'as pas marche et donc il me faut un code je pense qui permet de :

on eregistre des "NOM Prenom" dans les colonne A et le code va chercher ce "NOM Prenom"et/ou "Prenom NOM" ( il tient pas compte de l'ordre nom prénom ), et il renvoie lu numero de la ligne a la colonne B (de la meme ligne ou on a enregistrer le nom prenom colonne A )


jespers vraiment que tu pourra maider je nai vraiment besoin

merci
jordane45
Messages postés
25046
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 mars 2019
1914 > blalaa
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
-
Ah ben.. maintenant en ayant l'intégralité du besoin correctement expliqué... oui.. on peut donc penser à faire du code VBA pour ça.

Par contre... ici on ne fourni pas de code à la demande..... (mais on veut bien aider à le faire).
Donc commence par nous montrer ce que tu as commencé à faire et explique sur quel point tu bloques exactement.

Si tu n'as rien commencé (par méconnaissance du langage) je t'invite à aller consulter des tutos sur le langage VBA.
Par exemple :
https://silkyroad.developpez.com/VBA/DebuterMacros/

Et
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/


Et pour les recherches.. tu peux utiliser la méthode FIND
https://www.commentcamarche.net/faq/36886-vba-recherche-de-donnees-la-methode-find
Commenter la réponse de jordane45
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
0
Merci
re

je suis un debutant alors si vous pouvez maider ca serait vraiment gentil ,

ce que j'ai fait moi c de recuperer les numero de la ligne et les renvoyer a des cellule specifiee (en dure ) par ce que moi j'ai cru que les noms prenom qui sont enregistre dans la colonne A son fixe dans ces cases la

mais apparement mon tuteur veut que des que il met un nom prenom dans la colonne A le code cherchera le num de la ligne ou enregsitrer dans la colonne C

voici le code que j'ai utiliser moi

Sub nn()

Dim DerLin As Integer
Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer, n As Integer, o As Integer

Dim L1 As Integer, L2 As Integer, L3 As Integer, L4 As Integer, L5 As Integer, L6 As Integer, L7 As Integer

DerLin = Worksheets("Recup_absences").Range("C" & "65536").End(xlUp).Row

'renvoyer a Range("b2")le numero de la ligne ou se trouve bonvalet quentin
L1 = 0

For i = 24 To DerLin
    If Range("C" & i).Value = "BONVALET Quentin" Then
        L1 = i
        Exit For
    End If
Next

Range("b2") = L1 - 23

''renvoyer a Range("b3")le numero de la ligne ou se trouve  CHRISTEN Arnaud
L2 = 0

For j = 24 To DerLin
    If Range("C" & j).Value = "CHRISTEN Arnaud" Then
        L2 = j
        Exit For
    End If
Next

Range("b3") = L2 - 23

''renvoyer a Range("b4")le numero de la ligne ou se trouve  JACQUIOT Fabien
L3 = 0

For k = 24 To DerLin
    If Range("C" & k).Value = "JACQUIOT Fabien" Then
        L3 = k
        Exit For
    End If
Next

Range("b4") = L3 - 23

''renvoyer a Range("b5")le numero de la ligne ou se trouve  BRUNE Guillaume
L4 = 0

For l = 24 To DerLin
    If Range("C" & l).Value = "BRUNE Guillaume" Then
        L4 = l
        Exit For
    End If
Next

Range("b5") = L4 - 23

'renvoyer a Range("b6")le numero de la ligne ou se trouve  Thibault KERNIN
L5 = 0

For m = 24 To DerLin
    If Range("C" & m).Value = "Thibault KERNIN" Then
        L5 = m
        Exit For
    End If
Next

Range("b6") = L5 - 23

''renvoyer a Range("b7")le numero de la ligne ou se trouve  Jerome CRIBIER
L6 = 0

For n = 24 To DerLin

    If Range("C" & n).Value = "Jerome CRIBIER" Then
        L6 = n
        Exit For
    End If
Next

Range("b7") = L6 - 23

''renvoyer a Range("b9")le numero de la ligne ou se trouve  Jerome CRIBIER
L7 = 0

For o = 24 To DerLin
    If Range("C" & o).Value = "Valentin BENRAMDANE" Then
        L7 = o
        Exit For
    End If
Next

Range("b9") = L7 - 23

End Sub


EDIT : Ajout des balises de code

blalaa
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
-
je viens d'avoir un code qui peut etre le debut de la solution mais je ne sais pas si je suis dans la bonne voie ou nn, aussi j'ai un problme



Sub cca()

For i = 1 To 100

x = Cells(1, 1).Value

If Cells(i, 3).Value Like "*x*" Then Range("b1") = "Le mot ""x"" existe dans la cellule A1."

Next


End Sub



le probleme c que moi je veux comparer par rapport au contenu de la cellule (1,1) et pas x

ici il verifie dans la colonne C si il existe "x" et puis renvoyer le message a range("b1")
alors que je veux qui il verifie plutot le contenu de x qui se trouve dans la cellule(1,1)

merci de me repondre
blalaa
Messages postés
114
Date d'inscription
mercredi 18 avril 2018
Dernière intervention
23 mars 2019
-
RE BONJOUR

j'ai trouve un code dans ce forum ("cs_Le Pivert" m'as aide ) mais ce code il ne fonctionne que si une le prenom est totalement miniscule (il commence pas par une lettre majuscule)

voici le code de "cs_Le Pivert"

Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim maj As String
Dim NoLig As Long, Var As Variant
Set FL1 = Worksheets("Feuil1") 'adapter nom de la feuille
NoCol = 1 'lecture de la colonne A
For NoLig = 2 To 23
Var = FL1.Cells(NoLig, NoCol)
maj = majuscules(Range("A" & NoLig))
Var = Replace(Var, maj, "")
FL1.Cells(NoLig, NoCol).Value = maj & " " & Var
Next
Set FL1 = Nothing
End Sub
Public Function majuscules(zone)
Dim sel As Object
Dim i As Integer
Application.Volatile
For Each sel In zone
For i = 1 To Len(sel)
If Asc(Mid(sel, i, 1)) > 64 And Asc(Mid(sel, i, 1)) < 91 Then
majuscules = majuscules & Mid(sel, i, 1)
End If
Next i
Next sel
End Function



pouvez vous m'aider a l'adapter pour que ca marche mm si la premiere lettre de prenom est en majuscule

merci
Commenter la réponse de blalaa