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

encore moi pour autre chose

6 réponses
Avatar
pierre
bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!

6 réponses

Avatar
Jacquouille
Bonsoir Pierre
Tu déclares que F commences à 2 jusque x où x est le nb de feuilles (ici,
c'est donc 13).
Donc il manque la première qui correspond avec un peu de chance à celle du
mois de janvier, puisque tu dis d'inscrire le résultat en feuille 13. Si tu
essayais for f=1 to 12 ....?
Bonne chance

--
Jacquouille conseille : http://www.excelabo.net


"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message news:

bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!




Avatar
pierre
désolé mais ça marche pas
bon réveillon quand même

"Jacquouille" a écrit dans le message news:

Bonsoir Pierre
Tu déclares que F commences à 2 jusque x où x est le nb de feuilles (ici,
c'est donc 13).
Donc il manque la première qui correspond avec un peu de chance à celle du
mois de janvier, puisque tu dis d'inscrire le résultat en feuille 13. Si
tu

essayais for f=1 to 12 ....?
Bonne chance

--
Jacquouille conseille : http://www.excelabo.net


"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message news:

bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!








Avatar
Clément Marcotte
Bonjour,

Pas vraiment le temps de tester, mais tu utilise la collection
sheets(), et, en VB - VBA, les collections ont la fâcheuse habitude de
traiter leur premier élément comme l'élément 0 (zéro).

Essaie avec

For f = 0 To Sheets.Count - 1

Tu peux aussi essayer de faire exécuter ta procédure au pas-à-pas et
placer des espions, pour voir ce qui se passe.



"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de
news:
bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!




Avatar
Pascal Engelmajer
Salut Clément,
sauf ... Sheets, Cells, par exemple
--
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
"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Pas vraiment le temps de tester, mais tu utilise la collection
sheets(), et, en VB - VBA, les collections ont la fâcheuse habitude de
traiter leur premier élément comme l'élément 0 (zéro).

Essaie avec

For f = 0 To Sheets.Count - 1

Tu peux aussi essayer de faire exécuter ta procédure au pas-à-pas et
placer des espions, pour voir ce qui se passe.



"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message de
news:
bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!







Avatar
Michel Gaboly
Bonsoir,

Est-ce que janvier n'est pas tout bêtement la feuille 1 (tu initialises
f à 2) ?

D'autre part, tu peux simplifier le code et améliorer la vitesse en
utilisant NB.SI(), COUNTIF() en anglais (avec la feuille de synthèse
en dernière position) :

Sub OccurrencesMotFeuillesMois()
Dim f As Worksheet, i As Integer, Occurrences As Integer, j As Integer
For i = 1 To Sheets.Count - 1
Occurrences = Occurrences + Application.WorksheetFunction.CountIf(Sheets(i).UsedRange, "vacances")
Next i
End Sub

Cela évite de faire une boucle pour chaque feuille.


Tu peux également éviter VBA avec une formule contenant une référence
3D dans la feuille de synthèse.



bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide en ce soir de paix de tolérance et de fête!!!!


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
pierre
bonne et heureuse année à tous(tes)
la solution est
For f = 1 To Sheets.Count
désolé pour ma réponse pécédente
que la santé et la paix soient avec vous en cette nouvelle année

"pierre" <"xpierre52x"@tiscali.fr> a écrit dans le message news:

bonsoir,
j'ai un classeur avec une feuille par mois +1 feuille synthèse
j'ai le code suivant

Sub OccurrencesMotFeuillesMois()
Dim cell As Range
Dim mot As String
Dim occurrence As Long
Dim f As Integer
mot = "vacances"
occurrence = 0
For f = 2 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

qui fonctionne bien sauf pour la feuille 1(janvier )
je ne comprends pas pourquoi
merci de votre aide ence soir de paix de tolérence et de fête!!!!