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

Casse tete Chinois Application.Sum

7 réponses
Avatar
Christophe Joly
Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution suivante
pour interdir le trie d'un tableau si les cellules de la plage d'un autre
tableau n'etait pas vide.
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%40tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msftngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments must be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started scheduling
appointments, you will have to leave the coutry at the end of the list.",
vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules de
<Country Appointments> sheet sont choisies par le biais d' un menu déroulant
qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company Appointments" sheet
et que je selectionne dans "Company Appointments" sheet, par le biais du
menu déroulant, une ou plusieurs nouvelles entreprises (pas d' anciennes)
que je viens de rajouter dans "Company Data" sheet, le trie dans "Country
Data' est possible alors que cela ne devrait pas etre le cas puisque ma
plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles valeurs. Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company Appointments'!A3 le
trie de <Country Data> est interdit alors que si je selectionne seulement
une "nouvelle donnée" en 'Company Appointments'!A3 le trie de <Country Data>
est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe

7 réponses

Avatar
Jacquouille
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont bien
reprises par la plage balayée par la macro. As-tu effacé les anciennes et
réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée, as-tu revu
dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution suivante
pour interdir le trie d'un tableau si les cellules de la plage d'un autre
tableau n'etait pas vide.

http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4

0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3
Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft
ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments must
be

already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started scheduling
appointments, you will have to leave the coutry at the end of the list.",
vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules de
<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company Appointments"
sheet

et que je selectionne dans "Company Appointments" sheet, par le biais du
menu déroulant, une ou plusieurs nouvelles entreprises (pas d' anciennes)
que je viens de rajouter dans "Company Data" sheet, le trie dans "Country
Data' est possible alors que cela ne devrait pas etre le cas puisque ma
plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles valeurs.
Ce

n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company Appointments'!A3 le
trie de <Country Data> est interdit alors que si je selectionne seulement
une "nouvelle donnée" en 'Company Appointments'!A3 le trie de <Country
Data>

est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe




Avatar
Christophe Joly
Jacques:

En cette année du singe, merci de d'etre penché sur ma sournoise
chinoiserie.
Pour répondre à tes interrogations:
les nouvelles sociétés sont bien entrées dans la plage balayée par la macro
i.e [Appointments] qui correspond à (='Country
Appointments'!$C$3:$CX$115). Dans mon message précédent, j'ai pris la
cellule A3 en example en fait je voulais écrire C3 qui fait bien partie de
la plage.
La plage de la liste déroulante s'allonge automatiquement.

J'ai beau retourné le problème dans tous les sens je ne vois pas la faille
et pourtant cela doit etre évident comme un grain de riz dans un plat de
semoule.

Remerciements et sinceres salutations,

Christophe

"Jacquouille" a écrit dans le message de
news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont bien
reprises par la plage balayée par la macro. As-tu effacé les anciennes et
réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée, as-tu
revu

dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution
suivante


pour interdir le trie d'un tableau si les cellules de la plage d'un
autre


tableau n'etait pas vide.



http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4


0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3


Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft

ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments
must


be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started scheduling
appointments, you will have to leave the coutry at the end of the
list.",


vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules de
<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company Appointments"
sheet

et que je selectionne dans "Company Appointments" sheet, par le biais
du


menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas puisque ma
plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company Appointments'!A3
le


trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de <Country
Data>

est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe








Avatar
Christophe Joly
Rebonjour:

En lieu et place de Application.Sum j'aimerai essayer d'utiliser la fonction
NBVAL en traduisant l'idee suivante.
SI NBVAL dans range [Appointments] est <>0 then Msgbox Else...
Est ce que c'est enviseageable et si oui comment.

Merci

Christophe

"Jacquouille" a écrit dans le message de
news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont bien
reprises par la plage balayée par la macro. As-tu effacé les anciennes et
réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée, as-tu
revu

dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution
suivante


pour interdir le trie d'un tableau si les cellules de la plage d'un
autre


tableau n'etait pas vide.



http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4


0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3


Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft

ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments
must


be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started scheduling
appointments, you will have to leave the coutry at the end of the
list.",


vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules de
<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company Appointments"
sheet

et que je selectionne dans "Company Appointments" sheet, par le biais
du


menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas puisque ma
plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company Appointments'!A3
le


trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de <Country
Data>

est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe








Avatar
Philippe.R
Bonjour Christophe,
Peut être quelque chose sur cette base :

Sub des_sous()
Dim combien As Long
combien = Application.WorksheetFunction.CountA([Appointments])
If combien <> 0 Then
MsgBox "Cela fait : " & combien, vbInformation, "Combien !?!"
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Rebonjour:

En lieu et place de Application.Sum j'aimerai essayer d'utiliser la fonction
NBVAL en traduisant l'idee suivante.
SI NBVAL dans range [Appointments] est <>0 then Msgbox Else...
Est ce que c'est enviseageable et si oui comment.

Merci

Christophe

"Jacquouille" a écrit dans le message de
news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont bien
reprises par la plage balayée par la macro. As-tu effacé les anciennes et
réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée, as-tu
revu

dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution
suivante


pour interdir le trie d'un tableau si les cellules de la plage d'un
autre


tableau n'etait pas vide.



http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4


0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3


Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft

ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments
must


be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started scheduling
appointments, you will have to leave the coutry at the end of the
list.",


vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules de
<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company Appointments"
sheet

et que je selectionne dans "Company Appointments" sheet, par le biais
du


menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas puisque ma
plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company Appointments'!A3
le


trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de <Country
Data>

est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe












Avatar
Christophe Joly
Bonsoir Philippe et merci.

Avec ta proposition je suis maintenant dans la situation inverse c'est à
dire que le trie ne s'effectue pas meme lorsque les cellules du range de la
feuille sont vides.
Est ce CountA comptabilise aussi les formules ou seulement les valeurs.
parce que mon range est plein de formules.

Sinceres salutations.

Christophe


"Philippe.R" a écrit dans le message de
news:
Bonjour Christophe,
Peut être quelque chose sur cette base :

Sub des_sous()
Dim combien As Long
combien = Application.WorksheetFunction.CountA([Appointments])
If combien <> 0 Then
MsgBox "Cela fait : " & combien, vbInformation, "Combien !?!"
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Rebonjour:

En lieu et place de Application.Sum j'aimerai essayer d'utiliser la
fonction


NBVAL en traduisant l'idee suivante.
SI NBVAL dans range [Appointments] est <>0 then Msgbox Else...
Est ce que c'est enviseageable et si oui comment.

Merci

Christophe

"Jacquouille" a écrit dans le message de
news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont
bien



reprises par la plage balayée par la macro. As-tu effacé les
anciennes et



réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée,
as-tu



revu
dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution
suivante


pour interdir le trie d'un tableau si les cellules de la plage d'un
autre


tableau n'etait pas vide.





http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4





0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3





Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft


ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments
must


be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started
scheduling




appointments, you will have to leave the coutry at the end of the
list.",


vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo,
_




OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules
de




<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company
Appointments"




sheet
et que je selectionne dans "Company Appointments" sheet, par le
biais




du
menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas
puisque ma




plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec
les




nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company
Appointments'!A3




le
trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de
<Country




Data>
est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe
















Avatar
Philippe.R
Re,
CountA est la traduction de NBVAL() et compte donc toutes les cellules non vides (textes, nombres,
formules)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Bonsoir Philippe et merci.

Avec ta proposition je suis maintenant dans la situation inverse c'est à
dire que le trie ne s'effectue pas meme lorsque les cellules du range de la
feuille sont vides.
Est ce CountA comptabilise aussi les formules ou seulement les valeurs.
parce que mon range est plein de formules.

Sinceres salutations.

Christophe


"Philippe.R" a écrit dans le message de
news:
Bonjour Christophe,
Peut être quelque chose sur cette base :

Sub des_sous()
Dim combien As Long
combien = Application.WorksheetFunction.CountA([Appointments])
If combien <> 0 Then
MsgBox "Cela fait : " & combien, vbInformation, "Combien !?!"
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Rebonjour:

En lieu et place de Application.Sum j'aimerai essayer d'utiliser la
fonction


NBVAL en traduisant l'idee suivante.
SI NBVAL dans range [Appointments] est <>0 then Msgbox Else...
Est ce que c'est enviseageable et si oui comment.

Merci

Christophe

"Jacquouille" a écrit dans le message de
news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées sont
bien



reprises par la plage balayée par la macro. As-tu effacé les
anciennes et



réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la plage
balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée,
as-tu



revu
dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message news:

Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la solution
suivante


pour interdir le trie d'un tableau si les cellules de la plage d'un
autre


tableau n'etait pas vide.





http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4





0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3





Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft


ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no appointments
must


be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started
scheduling




appointments, you will have to leave the coutry at the end of the
list.",


vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlNo,
_




OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des cellules
de




<Country Appointments> sheet sont choisies par le biais d' un menu
déroulant

qui reprend le nom des sociétés contenues une feuille "Company Data"
sheet.Si j'efface mes anciennes sélections dans "Company
Appointments"




sheet
et que je selectionne dans "Company Appointments" sheet, par le
biais




du
menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas
puisque ma




plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas avec
les




nouvelles. Ceci est d'autant plus étrange que la macro ne fait pas
référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si je
selectionne seulement une ancienne donnée en 'Company
Appointments'!A3




le
trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de
<Country




Data>
est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe




















Avatar
Christophe Joly
Merci Philippe.

J'ai finalement trouvé une astuce pour contourner le probleme du compage des
formules.

Christophe
"Philippe.R" a écrit dans le message de
news:%
Re,
CountA est la traduction de NBVAL() et compte donc toutes les cellules non
vides (textes, nombres,

formules)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Bonsoir Philippe et merci.

Avec ta proposition je suis maintenant dans la situation inverse c'est à
dire que le trie ne s'effectue pas meme lorsque les cellules du range de
la


feuille sont vides.
Est ce CountA comptabilise aussi les formules ou seulement les valeurs.
parce que mon range est plein de formules.

Sinceres salutations.

Christophe


"Philippe.R" a écrit dans le message de
news:
Bonjour Christophe,
Peut être quelque chose sur cette base :

Sub des_sous()
Dim combien As Long
combien = Application.WorksheetFunction.CountA([Appointments])
If combien <> 0 Then
MsgBox "Cela fait : " & combien, vbInformation, "Combien !?!"
End If
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Christophe Joly" a écrit dans le message de
news:
Rebonjour:

En lieu et place de Application.Sum j'aimerai essayer d'utiliser la
fonction


NBVAL en traduisant l'idee suivante.
SI NBVAL dans range [Appointments] est <>0 then Msgbox Else...
Est ce que c'est enviseageable et si oui comment.

Merci

Christophe

"Jacquouille" a écrit dans le
message de




news:
Bonjour Christophe
Ton truc, c'est un peu du Chinois pour moi, surtout avec du Grand
Breton....-)
As-tu vérifié que tes nouvelles compagnies ou sociétés entrées
sont





bien
reprises par la plage balayée par la macro. As-tu effacé les
anciennes et



réécrit dessus, ou bien as-tu allongé la liste. dans ce cas, la
plage





balayée devrait être revue à la hausse (comme les zimpo).
Idem pour ta liste déroulante et déroutante, si tu l'as allongée,
as-tu



revu
dans le menu/autoriser liste si la plage correspondait?
Bonne chance
Jacques, très peu expert en Chinoiseries.
-
Jacquouille conseille : http://www.excelabo.net


"Christophe Joly" a écrit dans le message
news:






Bonjour:

Le 20 decembre dernier Alain et Philippe me proposait la
solution






suivante
pour interdir le trie d'un tableau si les cellules de la plage
d'un






autre
tableau n'etait pas vide.








http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=OvhgAh0xDHA.4064%4








0tk2msftngp13.phx.gbl&rnum=5&prev=/groups%3Fq%3Dcjoly%2540bigfoot.com%26hl%3








Dfr%26lr%3D%26ie%3DUTF-8%26scoring%3Dd%26selm%3DOvhgAh0xDHA.4064%2540tk2msft


ngp13.phx.gbl%26rnum%3D5

Ci-dessous la macro

Sub SortCountryData()
'MPFE le 20/12/2003
ActiveSheet.Unprotect Password:="showtime"
Dim VoP As Long
VoP = Application.Sum([Appointments])
If VoP <> 0 Then
MsgBox "To sort the <Country Data> sheet by country, no
appointments






must
be
already scheduled in the <Country Appointments> sheet." _
& " If you would like to add a country after you have started
scheduling




appointments, you will have to leave the coutry at the end of
the






list.",
vbInformation, "SORTING IS IMPOSSIBLE..."
Exit Sub
Else
DerniereLigneColA = Range("A65536").End(xlUp).Row
Sheets("Country Data").Range("A4:Z" & DerniereLigneColA).Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending,
Header:=xlNo,






_
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom






ActiveSheet.Protect Password:="showtime"
End If
End Sub

Cela fonctionne parfaitement mais voila ... Les valeurs des
cellules






de
<Country Appointments> sheet sont choisies par le biais d' un
menu






déroulant
qui reprend le nom des sociétés contenues une feuille "Company
Data"






sheet.Si j'efface mes anciennes sélections dans "Company
Appointments"




sheet
et que je selectionne dans "Company Appointments" sheet, par le
biais




du
menu déroulant, une ou plusieurs nouvelles entreprises (pas d'
anciennes)


que je viens de rajouter dans "Company Data" sheet, le trie dans
"Country


Data' est possible alors que cela ne devrait pas etre le cas
puisque ma




plage [Appointments] n'est pas vide.
Pour info le nom [Appointments] fait référence à (='Country
Appointments'!$C$3:$CX$115)

Pourquoi cela fonctionne avec les "anciennes données" mais pas
avec






les
nouvelles. Ceci est d'autant plus étrange que la macro ne fait
pas






référence à la feuille "Company Data" qui contient ces nouvelles
valeurs.


Ce
n'est pas non plus une question de plage puisque par exemple si
je






selectionne seulement une ancienne donnée en 'Company
Appointments'!A3




le
trie de <Country Data> est interdit alors que si je selectionne
seulement


une "nouvelle donnée" en 'Company Appointments'!A3 le trie de
<Country




Data>
est autorisé ce qui est incompréhensible.

Merci pour votre aide et suggestions.

Christophe