Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 14h03   #1
Candidat au titre de Membre du Club
 
Delphine Jordan
Inscription : septembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Delphine Jordan
Âge : 21

Informations forums :
Inscription : septembre 2010
Messages : 26
Points : 14
Points : 14
Envoyer un message via Skype™ à petole
Par défaut Problème avec la fonction Cells.Find

Bonjour,

Petite question, est-ce que la formule
Code :
Cells.Find(What:=Total).Address
est sensée marcher qu'avec des chiffres ou est-il possible de chercher le mot Total également?

J'ai essayé avec un chiffre et il m'a retourné la bonne cellule mais quand je cherche avec Total il me trouve toujours $E$1 ce qui n'est pas du tout juste car ma cellule E1 est vide!

Merci de votre aide!
petole est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h10   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 451
Points : 1 451
Bonjour,

As-tu essayé avec
Code :
Resultat=Cells.Find(What:="Total").Address
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 14h22   #3
Candidat au titre de Membre du Club
 
Delphine Jordan
Inscription : septembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Delphine Jordan
Âge : 21

Informations forums :
Inscription : septembre 2010
Messages : 26
Points : 14
Points : 14
Envoyer un message via Skype™ à petole
Voilà mon petit code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub AddLines_Monsieur()
 
    Call TrouveRef(Total)
 
End Sub
 
    Function TrouveRef(Valeur As Variant) As String
 
    Application.Volatile
    TrouveRef = Cells.Find(What:=Valeur).Address
    If (TrouveRef = "$A$1") Then
        TrouveRef = "Aucune"
    End If
 
    MsgBox TrouveRef
 
    End Function
Si je mets "Total", il me met une erreur!
petole est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h31   #4
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 451
Points : 1 451
Re,

J'ai inscrit "Total" dans la cellule C7.
La fonction me retourne bien l'adresse.
Code :
1
2
3
4
5
6
7
8
9
10
11
Sub AddLines_Monsieur()
    Call TrouveRef("Total")
End Sub
Function TrouveRef(Valeur As Variant) As String
    Application.Volatile
    TrouveRef = Cells.Find(What:=Valeur).Address
    If (TrouveRef = "$A$1") Then
        TrouveRef = "Aucune"
    End If
    MsgBox TrouveRef
End Function
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 15h39   #5
Candidat au titre de Membre du Club
 
Delphine Jordan
Inscription : septembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Delphine Jordan
Âge : 21

Informations forums :
Inscription : septembre 2010
Messages : 26
Points : 14
Points : 14
Envoyer un message via Skype™ à petole
J'ai fait un copier coller de ton code et j'ai essayé de l'exécuter.

Il me fait une erreur :

Erreur d'exécution "91":
Variable objet ou variable de bloc With non définie

Et quand je clique sur débogage, il me surligne la ligne

Code :
TrouveRef = Cells.Find(What:=Valeur).Address
en jaune.

Est-ce que tu sais de quoi ça peut venir?

Merci de ton aide!!
petole est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 15h54   #6
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 774
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 774
Points : 2 094
Points : 2 094
Bonjour,

Avec une gestion de l'erreur si feuille vide :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Function TrouveRef(Valeur As Variant) As String
 
    Application.Volatile
 
    'gère l'erreur si pas trouvée ou si
    'erreur générée volontairement (A1)
    On Error GoTo Fin
 
    'xlWhole pour valeur exacte
    'xlPart pour valeur approximative
    TrouveRef = Cells.Find(Valeur, , xlValues, xlWhole).Address
 
    'génère une erreur si trouvé en A1
    If TrouveRef = "$A$1" Then Err.Raise vbObjectError + 513
 
    Exit Function
 
    'est éguillé ici si erreur (A1 ou pas trouvée)
Fin:
    TrouveRef = "Aucune"
 
End Function
Hervé.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 16h29   #7
Candidat au titre de Membre du Club
 
Delphine Jordan
Inscription : septembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Delphine Jordan
Âge : 21

Informations forums :
Inscription : septembre 2010
Messages : 26
Points : 14
Points : 14
Envoyer un message via Skype™ à petole
Merci beaucoup à tous!

Tout marche enfin!
petole est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h11.


 
 
 
 
Partenaires

Hébergement Web