Fonction Find en VBA

Le
Roland
Bonjour,


J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme As
Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent aux
offset près, des cellules dont valeurs sont identiques au paramètre Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même configuration
la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christophe Mathon
Le #6814461
Bonjour Roland,

Sur ton portable, tu dit avoir Windows xp avec Excel 2000.
Mais sur ton pc fixe, tu a quoi ? Win XP avec excel 2000?
Est ce que les versions sont les meme?
Est ce que tu a un message d'erreur?

Christophe Mathon

"Roland" news:%23k$
Bonjour,


J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme As
Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent
aux offset près, des cellules dont valeurs sont identiques au paramètre
Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même configuration
la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.



dunkelzahn
Le #6820281
Bonjour,

As tu fait une vérification au point d'arrêt pour voir ou va pointer
tes offset (cases vides ou résultat donnant un compte nul) ? Ou alors
vérifies tu que tu aies NC à la fin ?
J'utilise les fonctions find que j'ai fais sous XP et Vista et de
Excel 2000 à 2007 et je n'ai jamais eu aucun problème.

Au passage, ta ligne "If C Is Nothing Then Exit Do " est inutile
puisque déjà présente dans le loop (la ligne suivante)


On 5 juin, 19:46, "Roland"
Bonjour,

J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

 Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
    Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Som me As
Double
    Application.Volatile
    MaSomme= "NC"
    For Each Feuille In ActiveWorkbook.Sheets
            With Feuille.Cells
                Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
                If Not C Is Nothing Then
                    FirstAddress = C.Address
                    Do
                        Somme = Somme + Val(C.Of fset(OffLigne,
OffColonne).Value)
                        Set C = .Find(Texte, Aft er:=C, LookAt:=xlWhole,
LookIn:=xlValues)
                        If C Is Nothing Then Exit Do
                    Loop While Not C Is Nothing And C. Address <>
FirstAddress
                End If
            End With
    Next
    MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent aux
offset près, des cellules dont valeurs sont identiques au paramètre Te xte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même configura tion
la fonction Find  ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.


Roland
Le #6833621
Bonsoir,

Merci de votre intérêt pour mon problème.

En fait c'est la fonction find qui ne fonctionne pas.
Les configurations sont exactement les même.

La macro est placée dans le fichier de test et donc fonctionne avec le même
classeur.

Si je lance à la main la fonction (édition de la cellule), la fonction
s'exécute bien par contre
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
retourne nothing

C'est la seule différence entre les deux PC mais elle est de taille.

Avez-vous une idée.

Merci d'avance

"dunkelzahn" news:
Bonjour,

As tu fait une vérification au point d'arrêt pour voir ou va pointer
tes offset (cases vides ou résultat donnant un compte nul) ? Ou alors
vérifies tu que tu aies NC à la fin ?
J'utilise les fonctions find que j'ai fais sous XP et Vista et de
Excel 2000 à 2007 et je n'ai jamais eu aucun problème.

Au passage, ta ligne "If C Is Nothing Then Exit Do " est inutile
puisque déjà présente dans le loop (la ligne suivante)


On 5 juin, 19:46, "Roland"
Bonjour,

J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme As
Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent
aux
offset près, des cellules dont valeurs sont identiques au paramètre Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même configuration
la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.


Roland
Le #6833611
Bonsoir,

Merci de votre intérêt pour mon problème.

En fait c'est la fonction find qui ne fonctionne pas.
Les configurations sont exactement les même.

La macro est placée dans le fichier de test et donc fonctionne avec le même
classeur.

Si je lance à la main la fonction (édition de la cellule), la fonction
s'exécute bien par contre
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
retourne nothing

C'est la seule différence entre les deux PC mais elle est de taille.

Avez-vous une idée.

Merci d'avance

"Christophe Mathon"
Bonjour Roland,

Sur ton portable, tu dit avoir Windows xp avec Excel 2000.
Mais sur ton pc fixe, tu a quoi ? Win XP avec excel 2000?
Est ce que les versions sont les meme?
Est ce que tu a un message d'erreur?

Christophe Mathon

"Roland" news:%23k$
Bonjour,


J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme
As Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent
aux offset près, des cellules dont valeurs sont identiques au paramètre
Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même
configuration la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.







dunkelzahn
Le #6855201
Bonjour,

Je ne vois pas ou est le problème à mon niveau alors sauf peut être au
niveau du point de départ sinon. Tu fais une recherche sur TOUTES les
feuilles du classeur. Il est vrai que personnellement, ca a toujours
été sur des colonnes ou des aires particulières. Peux tu joindre un
fichier exemple ??

On 9 juin, 20:34, "Roland"
Bonsoir,

Merci  de votre intérêt pour mon problème.

En fait c'est la fonction find qui ne fonctionne pas.
Les configurations sont exactement les même.

La macro est placée dans le fichier de test et donc fonctionne avec le m ême
classeur.

Si je lance à la main la fonction (édition de la cellule), la fonction
s'exécute bien par contre
    Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
retourne nothing

C'est la seule différence entre les deux PC mais elle est de taille.

Avez-vous une idée.

Merci d'avance

"Christophe Mathon"



Bonjour Roland,

Sur ton portable, tu dit avoir Windows xp avec Excel 2000.
Mais sur ton pc fixe, tu a quoi ? Win XP avec excel 2000?
Est ce que les versions sont les meme?
Est ce que tu a un message d'erreur?

Christophe Mathon

"Roland" news:%23k$
Bonjour,

J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
   Dim Feuille As Variant, C As Variant, FirstAddress As Variant, S omme
As Double
   Application.Volatile
   MaSomme= "NC"
   For Each Feuille In ActiveWorkbook.Sheets
           With Feuille.Cells
               Set C = .Find(Texte, LookAt:=xlWhole , LookIn:=xlValues)
               If Not C Is Nothing Then
                   FirstAddress = C.Address
                   Do
                       Somme = Somme + Val(C. Offset(OffLigne,
OffColonne).Value)
                       Set C = .Find(Texte, A fter:=C, LookAt:=xlWhole,
LookIn:=xlValues)
                       If C Is Nothing Then Exi t Do
                   Loop While Not C Is Nothing And C.Address <>
FirstAddress
               End If
           End With
   Next
   MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouve nt
aux offset près, des cellules dont valeurs sont identiques au param ètre
Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même
configuration la fonction Find  ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Misange
Le #6858861
bonjour

j'ai pas regardé en détail mais juste une idée en passant : les
séparateurs décimaux, les options régionales et autres sont identiques
sur les deux PC ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,


J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme As
Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent aux
offset près, des cellules dont valeurs sont identiques au paramètre Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même configuration
la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.




Roland
Le #6878221
Bonjour,

Ce n'est pas la raison. J'ai vérifié ce oint, les options sont identiques.

Roland

"Misange"
bonjour

j'ai pas regardé en détail mais juste une idée en passant : les
séparateurs décimaux, les options régionales et autres sont identiques sur
les deux PC ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,


J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme
As Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se trouvent
aux offset près, des cellules dont valeurs sont identiques au paramètre
Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même
configuration la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.




Christophe Mathon
Le #6914031
Re-Bonjour Roland,

J'ai essayer sur mon excel 2007.
Mise a part que j'ai du activer les macro sur excel, la fonction marche tres
bien.

Questions:
1) Est ce que tu a essayer de cree un nouveau fichier excel, et de metre une
macro avec Find mais version simple
<><><><><><><><><><>
Sub test()
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find("Total")
MsgBox C
End With
Next
End Sub
<><><><><><><><><><>

2) Est ce que Find est la seul fonction qui ne marche pas ?
3) Est ce que tu a essayer sur d'autre ordinateur?
4) Peut etre l'installation de office est corromput. A tu essayer de
reinstaller office?

Christophe mathon

"Roland" news:Ocn9%23%
Bonjour,

Voici un fichier de test

Le résultat de la somme est dans la feuille 1 cellule A1

"dunkelzahn" news:
Bonjour,

Je ne vois pas ou est le problème à mon niveau alors sauf peut être au
niveau du point de départ sinon. Tu fais une recherche sur TOUTES les
feuilles du classeur. Il est vrai que personnellement, ca a toujours
été sur des colonnes ou des aires particulières. Peux tu joindre un
fichier exemple ??

On 9 juin, 20:34, "Roland"
Bonsoir,

Merci de votre intérêt pour mon problème.

En fait c'est la fonction find qui ne fonctionne pas.
Les configurations sont exactement les même.

La macro est placée dans le fichier de test et donc fonctionne avec le
même
classeur.

Si je lance à la main la fonction (édition de la cellule), la fonction
s'exécute bien par contre
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
retourne nothing

C'est la seule différence entre les deux PC mais elle est de taille.

Avez-vous une idée.

Merci d'avance

"Christophe Mathon" news:




Bonjour Roland,

Sur ton portable, tu dit avoir Windows xp avec Excel 2000.
Mais sur ton pc fixe, tu a quoi ? Win XP avec excel 2000?
Est ce que les versions sont les meme?
Est ce que tu a un message d'erreur?

Christophe Mathon

"Roland" news:%23k$
Bonjour,

J'utilise la fonction suivante sur mo ordinateur (XP-Excel 2000)

Function MaSomme(Texte As String, OffLigne As Integer, OffColonne As
Integer) As Variant
Dim Feuille As Variant, C As Variant, FirstAddress As Variant, Somme
As Double
Application.Volatile
MaSomme= "NC"
For Each Feuille In ActiveWorkbook.Sheets
With Feuille.Cells
Set C = .Find(Texte, LookAt:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Somme = Somme + Val(C.Offset(OffLigne,
OffColonne).Value)
Set C = .Find(Texte, After:=C, LookAt:=xlWhole,
LookIn:=xlValues)
If C Is Nothing Then Exit Do
Loop While Not C Is Nothing And C.Address <>
FirstAddress
End If
End With
Next
MaSomme= Somme
End Function
Cette fonction à pour but de sommer toutes les cellules qui se
trouvent
aux offset près, des cellules dont valeurs sont identiques au
paramètre
Texte

Voici le problème :
Sur mon ordinateur personnel pas de problème. Au bureau même
configuration la fonction Find ne trouve pas d'occurrence.

Si vous avez une idée, merci d'avance.- Masquer le texte des messages
précédents -



- Afficher le texte des messages précédents -









Publicité
Poster une réponse
Anonyme