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

Sélection de cellules selon format en VBA

6 réponses
Avatar
smdaoust
Bonjour,

J'aimerais sélectionner des cellules selon ce format 0;-0; afin de
m'assurer que toutes les cellules qui doivent avoir ce format l'ont.

Merci beaucoup

Claire

6 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Exécute cette petite procédure après l'avoir recopiée dans un module standard du
classeur à vérifier :

Sub SelectFormat()
Dim S$, cell As Range
For Each cell In ActiveSheet.UsedRange
If cell.NumberFormatLocal = "0;-0" Then _
S = S & cell.Address & ","
Next
S = Left(S, Len(S) - 1): Range(S).Select
End Sub 'fs

Si tu dois l'utiliser fréquemment, recopie-la dans ton perso.xls et affecte-la à
un bouton personnalisé d'une barre d'outils.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'aimerais sélectionner des cellules selon ce format 0;-0; afin de
m'assurer que toutes les cellules qui doivent avoir ce format l'ont.

Merci beaucoup

Claire


Avatar
smdaoust
Bonjour Frédéric,

J'ai essayé mais j'ai un message d'erreur sur cette ligne

S = Left(S, Len(S) - 1): Range(S).Select


Erreur d'exécution 5
Argument ou appel de procécure incorrect.

J'ai bel et bien copié la routine dans un module normal. Autre suggestion???

Merci
Claire

Avatar
Frédéric Sigonneau
Bonsoir,

Cette ligne de code est tout à fait 'banale' et ne devrait pas provoquer
d'erreur..
Remèdes possibles :
- mettre la procédure entière en commentaire, compiler le projet, enregistrer,
décommenter, relancer.
ou
- vérifier si le projet ne contient aucune référence marquée 'manquante'
(OutilsRéférences dans l'éditeur VBE). S'il y en a une, la décocher, compiler
et relancer.

Si l'erreur persiste, modifier la présentation de la ligne de :

S = Left(S, Len(S) - 1): Range(S).Select

en :

S = Left(S, Len(S) - 1)
Range(S).Select

puis relancer la procédure pour voir laquelle des deux instructions est
surlignée comme fautive par le débogueur.
Si c'est la deuxième (celle qui sélectionne), il est possible, si la macro est
exécutée à l'aide d'un CommandButton, que le problème vienne de là, surtout si
tu utilises Excel 97 : mets la propriété TakeFocusOnClick du bouton sur False,
enregistre et réessaye d'exécuter le code.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

J'ai essayé mais j'ai un message d'erreur sur cette ligne

S = Left(S, Len(S) - 1): Range(S).Select


Erreur d'exécution 5
Argument ou appel de procécure incorrect.

J'ai bel et bien copié la routine dans un module normal. Autre suggestion???

Merci
Claire



Avatar
smdaoust
Bonjour Frédéric,

Excuse le retard pour ma réponse.

Pour une raison ou une autre, cela ne fonctionne toujours pas.

S = Left(S, Len(S) - 1) est la ligne fautive. Je l'ai séparée comme
tu m'avais dit.

Merci de l'aide

Claire


Frédéric Sigonneau wrote in message news:...
Bonsoir,

Cette ligne de code est tout à fait 'banale' et ne devrait pas provoquer
d'erreur..
Remèdes possibles :
- mettre la procédure entière en commentaire, compiler le projet, enregistrer,
décommenter, relancer.
ou
- vérifier si le projet ne contient aucune référence marquée 'manquante'
(OutilsRéférences dans l'éditeur VBE). S'il y en a une, la décocher, compiler
et relancer.

Si l'erreur persiste, modifier la présentation de la ligne de :

S = Left(S, Len(S) - 1): Range(S).Select

en :

S = Left(S, Len(S) - 1)
Range(S).Select

puis relancer la procédure pour voir laquelle des deux instructions est
surlignée comme fautive par le débogueur.
Si c'est la deuxième (celle qui sélectionne), il est possible, si la macro est
exécutée à l'aide d'un CommandButton, que le problème vienne de là, surtout si
tu utilises Excel 97 : mets la propriété TakeFocusOnClick du bouton sur False,
enregistre et réessaye d'exécuter le code.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

J'ai essayé mais j'ai un message d'erreur sur cette ligne

S = Left(S, Len(S) - 1): Range(S).Select


Erreur d'exécution 5
Argument ou appel de procécure incorrect.

J'ai bel et bien copié la routine dans un module normal. Autre suggestion???

Merci
Claire





Avatar
Frédéric Sigonneau
Bonsoir,

J'obtiens cette même erreur lorsque la plage examinée ne comporte aucune cellule
au format recherché. Apparemment, ce cas de figure (auquel je n'avais pas pensé)
peut se produire dans ton utilisation de la macro. Si c'est bien ça, la petite
correction suivante devrait régler le problème :

Sub SelectFormat()
Dim S$, cell As Range
For Each cell In ActiveSheet.UsedRange
If cell.NumberFormatLocal = "0;-0" Then _
S = S & cell.Address & ","
Next
If S <> "" Then
S = Left(S, Len(S) - 1)
Range(S).Select
End If
End Sub 'fs

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

Excuse le retard pour ma réponse.

Pour une raison ou une autre, cela ne fonctionne toujours pas.

S = Left(S, Len(S) - 1) est la ligne fautive. Je l'ai séparée comme
tu m'avais dit.

Merci de l'aide

Claire

Frédéric Sigonneau wrote in message news:...
Bonsoir,

Cette ligne de code est tout à fait 'banale' et ne devrait pas provoquer
d'erreur..
Remèdes possibles :
- mettre la procédure entière en commentaire, compiler le projet, enregistrer,
décommenter, relancer.
ou
- vérifier si le projet ne contient aucune référence marquée 'manquante'
(OutilsRéférences dans l'éditeur VBE). S'il y en a une, la décocher, compiler
et relancer.

Si l'erreur persiste, modifier la présentation de la ligne de :

S = Left(S, Len(S) - 1): Range(S).Select

en :

S = Left(S, Len(S) - 1)
Range(S).Select

puis relancer la procédure pour voir laquelle des deux instructions est
surlignée comme fautive par le débogueur.
Si c'est la deuxième (celle qui sélectionne), il est possible, si la macro est
exécutée à l'aide d'un CommandButton, que le problème vienne de là, surtout si
tu utilises Excel 97 : mets la propriété TakeFocusOnClick du bouton sur False,
enregistre et réessaye d'exécuter le code.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

J'ai essayé mais j'ai un message d'erreur sur cette ligne

S = Left(S, Len(S) - 1): Range(S).Select


Erreur d'exécution 5
Argument ou appel de procécure incorrect.

J'ai bel et bien copié la routine dans un module normal. Autre suggestion???

Merci
Claire







Avatar
smdaoust
Bonjour Frédéric,

Tout semble fonctionner maintenant. La seule modification que
j'aimerais y apporter est le format. J'aimerais que cela soit
0;-0;"-" au lieu de "0;-0".

Lorsque j'essaie de changer le format dans la macro, il ajoute des
espaces avant et après le trait.

Merci encore une fois.

Claire




<Frédéric Sigonneau wrote in message news:...
Bonsoir,

J'obtiens cette même erreur lorsque la plage examinée ne comporte aucune cellule
au format recherché. Apparemment, ce cas de figure (auquel je n'avais pas pensé)
peut se produire dans ton utilisation de la macro. Si c'est bien ça, la petite
correction suivante devrait régler le problème :

Sub SelectFormat()
Dim S$, cell As Range
For Each cell In ActiveSheet.UsedRange
If cell.NumberFormatLocal = "0;-0" Then _
S = S & cell.Address & ","
Next
If S <> "" Then
S = Left(S, Len(S) - 1)
Range(S).Select
End If
End Sub 'fs

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

Excuse le retard pour ma réponse.

Pour une raison ou une autre, cela ne fonctionne toujours pas.

S = Left(S, Len(S) - 1) est la ligne fautive. Je l'ai séparée comme
tu m'avais dit.

Merci de l'aide

Claire

Frédéric Sigonneau wrote in message news:...
Bonsoir,

Cette ligne de code est tout à fait 'banale' et ne devrait pas provoquer
d'erreur..
Remèdes possibles :
- mettre la procédure entière en commentaire, compiler le projet, enregistrer,
décommenter, relancer.
ou
- vérifier si le projet ne contient aucune référence marquée 'manquante'
(OutilsRéférences dans l'éditeur VBE). S'il y en a une, la décocher, compiler
et relancer.

Si l'erreur persiste, modifier la présentation de la ligne de :

S = Left(S, Len(S) - 1): Range(S).Select

en :

S = Left(S, Len(S) - 1)
Range(S).Select

puis relancer la procédure pour voir laquelle des deux instructions est
surlignée comme fautive par le débogueur.
Si c'est la deuxième (celle qui sélectionne), il est possible, si la macro est
exécutée à l'aide d'un CommandButton, que le problème vienne de là, surtout si
tu utilises Excel 97 : mets la propriété TakeFocusOnClick du bouton sur False,
enregistre et réessaye d'exécuter le code.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

J'ai essayé mais j'ai un message d'erreur sur cette ligne

S = Left(S, Len(S) - 1): Range(S).Select


Erreur d'exécution 5
Argument ou appel de procécure incorrect.

J'ai bel et bien copié la routine dans un module normal. Autre suggestion???

Merci
Claire