comment utiliser appartenir à

alexletiti

XLDnaute Nouveau
bonjour
Je souhaite insérer à ce code la formul qui me permet de dire si ... appartient à alors et si ... n'appartient pas à alors
voici mon prog.
Public Sub prog1()
nom = InputBox('Donner le nom de l'utilisateur')
For Each x In Range('A:A')
n = n + 1
plage = n
if nom appartient range('A:A')
If nom = x Then
x = x.Offset(0, 1)
MsgBox 'l'utilisateur ' & nom & ' appartient au groupe ' & x
End If
ElseIf nom n'appartient pas a range('A:A') MsgBox 'cet utilisateur n'existe pas !!'
End If
Next
End Sub

voila, c'est ce qui se trouve en rouge qui me pose problème.
Merci
 

MichelXld

XLDnaute Barbatruc
bonjour Alex

j'espere que cet exemple pourra t'aider
si le nom est trouvé , un message affiche la valeur qui est dans la 2eme colonne ( sur la meme ligne )


Sub RechercheColonne()
Dim Nom As String
Dim Plage As Range
Dim i As Integer, Resultat As Integer

Nom = InputBox('Donner le nom de l'utilisateur')
i = Range('A65536').End(xlUp).Row
Set Plage = Range('A1:A' & i)

On Error Resume Next
Resultat = Application.Match(Nom, Plage, 0)
If Resultat = 0 Then
MsgBox Nom & ' n'existe pas dans la plage ' & Plage.Address
Else
MsgBox Cells(Resultat, 2) 'afficher la donnée de la colonne 2
End If
End Sub



bonne soiree
MichelXld
 

alexletiti

XLDnaute Nouveau
désolé de ne pas avoir répondu mais je n'arrivais pas à retrouver le forum comme j'étais pas connecté.
merci pour ton prog c'est ce que je cherchait. Mais pourrais tu me le détailler car je ne comprend pas tout ce que tu as fais. ( je suis débutant )

merci
 

MichelXld

XLDnaute Barbatruc
bonjour Alex

j'espere que ces quelques indications pourront t'aider


Sub RechercheColonne()
Dim Nom As String
Dim Plage As Range
Dim i As Integer, Resultat As Integer

'affiche une boite de dialogue pour saisir le nom à rechercher
Nom = InputBox('Donner le nom de l'utilisateur')

'numero de la derniere ligne non vide dans la colonne A
i = Range('A65536').End(xlUp).Row

'définit la plage ou va etre effectuée la recherche
'A1 jusqu'a la derniere cellule non vide dans la colonne A
Set Plage = Range('A1:A' & i)

On Error Resume Next
'verifie si le nom existe dans la plage cible
Resultat = Application.Match(Nom, Plage, 0)

'avec la fonction Match , si le nom n'est pas trouvé dans la plage : resultat =0
If Resultat = 0 Then
MsgBox Nom & ' n'existe pas dans la plage ' & Plage.Address
Else

'si le nom est trouvé dans la plage : resultat renvoie le numero de ligne dans la plage
MsgBox Cells(Resultat, 2) 'afficher la donnée de la colonne 2
'cells(numero_ligne,numero_colonne)
End If
End Sub



bonne soiree
MichelXld

Message édité par: MichelXld, à: 01/06/2005 18:00
 
J

Jocelyn

Guest
Bonjour le Forum,
Bonjour alexletiti, MichelXld,

voila j'espére ne pas géner en venant dans ce fil .

mais j'aurais aimé savoir ce qu'il falait changer a ton code MichelXld pour qu'il puisse rechercher des caracteres numérique ou alphanumérique, car aprés essai si la plage Set Plage = Range('A1:A' & i) contient des nombres ils ne sont pas reconnus.

un grand merci d'avance

Jocelyn.
 
J

jocelyn

Guest
Bonjour le Forum,
Bonjour MichelXld,

Pour commencer merci de ta réponse.

Je pense que je me suis mal exprimé, si j'applique ce que tu as dis la macro reconnais les entrée numériques mais plus les alphas.

ce que je voudrais c'est quelle reconnaisse les deux types d'entrée.

encore merci de ton aide.

A+
Jocelyn
 

MichelXld

XLDnaute Barbatruc
bonsoir Jocelyn

tu peux tester


Sub RechercheColonneV02()
Dim Nom As Variant
Dim Plage As Range
Dim i As Integer, Resultat As Integer

'affiche une boite de dialogue pour saisir le nom à rechercher
Nom = InputBox('Donner le nom de l'utilisateur')

If IsNumeric(Nom) Then Nom = CDbl(Nom)

'numero de la derniere ligne non vide dans la colonne A
i = Range('A65536').End(xlUp).Row

'définit la plage ou va etre effectuée la recherche
'A1 jusqu'a la derniere cellule non vide dans la colonne A
Set Plage = Range('A1:A' & i)

On Error Resume Next
'verifie si le nom existe dans la plage cible
Resultat = Application.Match(Nom, Plage, 0)

'avec la fonction Match , si le nom n'est pas trouvé dans la plage : resultat =0
If Resultat = 0 Then
MsgBox Nom & ' n'existe pas dans la plage ' & Plage.Address
Else

'si le nom est trouvé dans la plage : resultat renvoie le numero de ligne dans la plage
MsgBox Cells(Resultat, 2) 'afficher la donnée de la colonne 2
'cells(numero_ligne,numero_colonne)
End If
End Sub



bon week end
MichelXld
 
J

jocelyn

Guest
Bonjour le Forum,
Bonjour MichelXld,

désolé de n'avoir pas répondu plus vite (je n'ai pas internet chez moi, c'est le fin fond de la campagne ca ne passe pas)

Merci cela fonctionne parfaitement.

un grand bravo.

Jocelyn
 

Discussions similaires

Statistiques des forums

Discussions
312 415
Messages
2 088 235
Membres
103 776
dernier inscrit
Floortin