Sélection de cellules selon format en VBA

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Frédéric Sigonneau
Le #177589
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


smdaoust
Le #180398
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

Frédéric Sigonneau
Le #181538
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



smdaoust
Le #191641
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
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





Frédéric Sigonneau
Le #194262
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
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







smdaoust
Le #201600
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




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









Publicité
Poster une réponse
Anonyme