OVH Cloud OVH Cloud

incompatibilité de type?

10 réponses
Avatar
pierre
bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je ne
comprends pas d'autant que cette proc fonctionnait dans un autre classeur
merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub

10 réponses

Avatar
Pierre CFI [mvp]
bonjour
assez scrabreux de donner à une variable un nom comme Cell qui est réservé, nomme Macell par exemple

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news: e#
bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je ne
comprends pas d'autant que cette proc fonctionnait dans un autre classeur
merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub




Avatar
Daniel.M
Bonjour Pierre,

Cell n'est pas un mot réservé: Cells l'est.

Salutations,

Daniel M.

"Pierre CFI [mvp]" wrote in message
news:
bonjour
assez scrabreux de donner à une variable un nom comme Cell qui est réservé,
nomme Macell par exemple


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news:
e#

bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je ne
comprends pas d'autant que cette proc fonctionnait dans un autre classeur
merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub








Avatar
pierre
j'ai résolu une partie du pb(mettre à la ligne après then)
mais depuis il y a un pb de for each...next
quid de cette erreur de compil?
pierre
Avatar
Daniel.M
Bonjour Pierre,

Vous avez des valeurs d'erreur (#NA, #DIV/0!) dans la plage.

Au lieu de
If cell = mot Then occurrence = occurrence + 1

mettre
Is Not IsError(cell) Then
If cell = mot Then occurrence = occurrence + 1
End If

Aussi, pourquoi ne pas utiliser NB.SI au lieu d'une longue itération?
occurence = Application.Countif(Sheets(f).UsedRange.Cells, mot)

comme M. Gaboly te l'avait suggéré

Salutations,

Daniel M.


"pierre" <"xpierre52x"@tiscali.fr> wrote in message
news:e%
bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je ne
comprends pas d'autant que cette proc fonctionnait dans un autre classeur
merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub




Avatar
Pascal Engelmajer
Salut,
Cell est réservé ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
assez scrabreux de donner à une variable un nom comme Cell qui est
réservé, nomme Macell par exemple


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news:
e#

bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je
ne


comprends pas d'autant que cette proc fonctionnait dans un autre
classeur


merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub








Avatar
Herdet
Bonjour Pierre,
Un moyen bien plus direct de trouver le nb d'occurences dans la feuille n° f

Sheets(13).Range("p2") Application.WorksheetFunction.CountIf(Sheet(f).UsedRange,"vacances")

Cordialement
Robert Dezan

"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news:
e#
bonjour
dans la proc suivante,récupérée sur le site de...?
j'obtiens une erreur 13:incompatibilité de type(ligne*).malgré l'aide je
ne

comprends pas d'autant que cette proc fonctionnait dans un autre classeur
merci de votre aide
pierre

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then occurrence = occurrence + 1
Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub




Avatar
pierre
merci de vos réponses
il suffit de mettre à la ligne après Then
mais maintenant pb avec For each...next: erreur de compil


Sheets(13).Range("p2") > Application.WorksheetFunction.CountIf(Sheet(f).UsedRange,"vacances")


je fais une recherche sur les feuilles 1 à 12
merci de votre aide
Cordialement
Robert Dezan

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then
occurrence = occurrence + 1


Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub








Avatar
Pierre CFI [mvp]
..../...
si tu vas à la ligne il faut end if,
If cell = mot Then
occurrence = occurrence + 1
end if


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news: eT4#
merci de vos réponses
il suffit de mettre à la ligne après Then
mais maintenant pb avec For each...next: erreur de compil


Sheets(13).Range("p2") > > Application.WorksheetFunction.CountIf(Sheet(f).UsedRange,"vacances")


je fais une recherche sur les feuilles 1 à 12
merci de votre aide
Cordialement
Robert Dezan

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then
occurrence = occurrence + 1


Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub












Avatar
Pierre CFI [mvp]
.../...
mais le fait de mettre à la ligne aprés then, va pas changer grand chose

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de news: eT4#
merci de vos réponses
il suffit de mettre à la ligne après Then
mais maintenant pb avec For each...next: erreur de compil


Sheets(13).Range("p2") > > Application.WorksheetFunction.CountIf(Sheet(f).UsedRange,"vacances")


je fais une recherche sur les feuilles 1 à 12
merci de votre aide
Cordialement
Robert Dezan

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 1 To Sheets.Count
For Each cell In Sheets(f).UsedRange.Cells
* If cell = mot Then
occurrence = occurrence + 1


Next cell
Next f
Sheets(13).Range("p2") = occurrence
End Sub












Avatar
pierre
"Pierre CFI [mvp]" a écrit dans le message news:

.../...
mais le fait de mettre à la ligne aprés then, va pas changer grand chose


et si,cela me change l'erreur
sans mettre à la ligne: incompatibilité de type
en mettant à la ligne: end if sans bloc if

pierre qui patauge de plus en plus
et que si ça continue va tout bazarder et tout refaire