Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Find en VBA

8 réponses
Avatar
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.

8 réponses

Avatar
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" wrote in message
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.



Avatar
dunkelzahn
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" wrote:
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.


Avatar
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

"dunkelzahn" a écrit dans le message de
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" wrote:
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.


Avatar
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" a écrit dans le message de 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" wrote in message
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.







Avatar
dunkelzahn
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" wrote:
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" a écrit dans le message de ne ws:




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" wrote in message
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 -




Avatar
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.




Avatar
Roland
Bonjour,

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

Roland

"Misange" a écrit dans le message de news:

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.




Avatar
Christophe Mathon
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" wrote in message
news:Ocn9%23%
Bonjour,

Voici un fichier de test

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

"dunkelzahn" a écrit dans le message de
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" wrote:
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" a écrit dans le message de
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" wrote in message
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 -