OVH Cloud OVH Cloud

colorer cellule en VBA

49 réponses
Avatar
Pascal
bonjour,
Pourriez-vous m'aider à réaliser cette SUB ?
je cherche à colorer les cellules vide dans la plage A3:M200 en appui sur
bouton

Private Sub cmdCelluleVide_Click()
Dim Target As Range
Target.Value = "a3:m200"
If Target.Value = "" Then
Range(Target.Address, Target.Offset(0, 0).Address).Interior.ColorIndex
= 5
End If
End Sub

Merci d'avance

Pascal

9 réponses

1 2 3 4 5
Avatar
francois.forcet
Bonjours à toi
Quel plaisir de découvrir tes propos placés sous le signe de la
tolérance et de l'acceptation de la divergence de point de vue
Celà laisse place à la critique constructive qui permet de ne pas
rester sur des situations figées instaurées par des pionniers au seul
motif de leur expérience reconnue qui ne doit en aucun cas être remise
en cause
Ma démarche à 2 objectifs :
Celui de comprendre et non pas d'appliquer bêtement
Celui de bousculer des us et coutumes que chacun peut appliquer sans
fondement simplement par mimétisme parce que c'est la pratique
Si j'en reviens à l'utilité de déclarer les Variables pour l'étrange r
que tu cites a moins qu'il souhaites faire évoluer la solution
proposée seule la rapidité peut être et doit être prise en
considération
L'accès aux méthodes et propriétés et la lisibilité du code n'a
d'intéret que pour les initiés à des fins d'adaptation ou
d'appropriation éventuelle de la procédure
Je reste malgré tout persuadé que ce n'est qu'un plus pour la
compréhension leur absence ne l'interdisant pas

Donc hors mis pour les procédures au traitement lourd pour lesquels la
rapidité trouvera tout son intêret sans être tétu et obtu je ne suis
pas du tout convaincu de l'utilité de ces déclarations tout au moins
pour celui qui attend une solution à un problème posée
Ce n'est ni plus ni moins qu'un confort pour la compréhension de la
procédure et non une incontournable nécessité
Je vais certainement en choquer certains, mille excuses, mais avec
l'avantage d'amener beaucoup d'autres à s'interroger

Toute prise de position est respectable et à respecter
Avatar
Misange
Je m'inscris complètement en faux contre ceci que tu écris :

Si j'en reviens à l'utilité de déclarer les Variables pour l'étranger
que tu cites a moins qu'il souhaites faire évoluer la solution
proposée seule la rapidité peut être et doit être prise en
considération


et ceci
L'accès aux méthodes et propriétés et la lisibilité du code n'a
d'intéret que pour les initiés à des fins d'adaptation ou
d'appropriation éventuelle de la procédure


L'intérêt d'un forum de DISCUSSION n'est pas de fournir clef en main un
bout de code à celui qui le demande mais bel et bien d'expliquer comment
parvenir à le créer soi même. Beaucoup ici sont arrivés en se disant "
moi les macros c'est pas mon truc, là exceptionnellement j'en ai besoin
mais j'ai pas l'intention de me farcir d'apprendre un langage de
programmation pour faire juste une bricole dans un fichier particulier"
Donc ils viennent en demandant un truc super précis.
OK tu leur donnes le code.
Crac, la colonne a changé de place, les données maintenant peuvent
contenir des valeurs d'erreur alors qu'il n'y en avait pas au début, ils
veulent ajouter une bouclette pour faire joli... Ils reviennent chaque
fois sur le forum demander une modif de leur macro ou de leur formule
magique à laquelle ils ne comprennent rien.

Heureusement après une première expérience de ce type et confrontés de
nouveau à un fichier "exceptionnel" avec une nouvelle demande, un bon
nombre se disent qu'on ne peut pas toujours dépendre de la bonne volonté
des autres et "qu'aide toi le ciel t'aidera" reste un proverbe très
valable même quand on ne croit guère au ciel...
S'il n'y avait que des gens de la première catégorie, ça fait lurette
que la majorité des contributeurs réguliers de ce forum auraient cessé
d'y participer ! Heureusement il y a les autres.

Et oui, justement, les codes postés ici sont très très fréquemment
récupérés par des gens qui cherchent à comprendre et à améliorer leurs
procédures, à faire évoluer la solution proposée (d'autant que bien
souvent, que ce soit pour des raisons de simplicité ou de
confidentialité du type de données manipulées, la demande est assez
éloignée du besoin réel). Donc non, il n'y a pas que la rapidité à
prendre en compte (la rapidité de quoi d'ailleurs ? de la macro ? alors
il faut déclarer les variables).

La lisibilité du code est une qualité essentielle quand on cherche à
comprendre et à modifier et justement il n'y a pas que les initiés qui
récupèrent les codes des autres pour les modifier (même si ça reste
toujours une des meilleures sources pour apprendre et qu'il y a toujours
plus costaud que soi !). Les débutants ont encore plus besoin que les
autres d'avoir un code propre. C'est (pour caricaturer et à ne pas
prendre à la lettre car les conséquences n'ont rien à voir heureusement)
comme si tu considérais qu'il est plus simple pour un débutant de
prendre le volant sans connaître le code de la route et que celui ci
c'est juste pour faire joli !

Personne ne dit ici qu'il est obligatoire de déclarer les variables, que
ceux qui ne le font pas sont des mauvais ou qu'ils ont tort. Il n'y a
aucune espèce de jugement porté en la matière. Mais ce que tu fais pour
toi dans ton coin est différent de ce qui est mis à la disposition des
autres sur un forum pour leur permettre d'apprendre. Tu n'es pas victime
d'un quelconque ostracisme de la part de "ceux qui savent ou croient
savoir" mais à l'inverse ne te place pas en situation de dire expliquez
moi mais de toutes façons je ne changerai rien car moi je sais...

Je rejoins Denis sur un point (au moins !) c'est que je vois mal ce qui
pourrait te faire changer d'avis... Et je dirai que ceci est ma dernière
contribution sur ce fil.

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjours à toi
Quel plaisir de découvrir tes propos placés sous le signe de la
tolérance et de l'acceptation de la divergence de point de vue
Celà laisse place à la critique constructive qui permet de ne pas
rester sur des situations figées instaurées par des pionniers au seul
motif de leur expérience reconnue qui ne doit en aucun cas être remise
en cause
Ma démarche à 2 objectifs :
Celui de comprendre et non pas d'appliquer bêtement
Celui de bousculer des us et coutumes que chacun peut appliquer sans
fondement simplement par mimétisme parce que c'est la pratique
Si j'en reviens à l'utilité de déclarer les Variables pour l'étranger
que tu cites a moins qu'il souhaites faire évoluer la solution
proposée seule la rapidité peut être et doit être prise en
considération
L'accès aux méthodes et propriétés et la lisibilité du code n'a
d'intéret que pour les initiés à des fins d'adaptation ou
d'appropriation éventuelle de la procédure
Je reste malgré tout persuadé que ce n'est qu'un plus pour la
compréhension leur absence ne l'interdisant pas

Donc hors mis pour les procédures au traitement lourd pour lesquels la
rapidité trouvera tout son intêret sans être tétu et obtu je ne suis
pas du tout convaincu de l'utilité de ces déclarations tout au moins
pour celui qui attend une solution à un problème posée
Ce n'est ni plus ni moins qu'un confort pour la compréhension de la
procédure et non une incontournable nécessité
Je vais certainement en choquer certains, mille excuses, mais avec
l'avantage d'amener beaucoup d'autres à s'interroger

Toute prise de position est respectable et à respecter



Avatar
Modeste
Bonsour® avec ferveur ;o))) vous nous disiez :

Quel plaisir de découvrir tes propos(*) placés sous le signe de la
tolérance et de l'acceptation de la divergence de point de vue
Celà laisse place à la critique constructive qui permet de ne pas
rester sur des situations figées instaurées par des pionniers au seul
motif de leur expérience reconnue qui ne doit en aucun cas être remise
en cause
(*) Misange


;o)))
Cela s'appelle curiosité, ouverture d'esprit ;o)))
Les barrieres sont destinées à etre franchies...
Quand on parle de limites, cela sous-entend qu'il y a autre chose passé ces limites (terra incognita) ...
Cela ne peut en aucun cas etre une invitation à faire ou écrire n'importe quoi, n'importe comment ....
Dans le domaine précis de l'informatique cela conduit immanquablement à la programmation spaghetti, et aux programmes buggués, non évolutifs !!!

Tu ne pouvais espérer "meilleure avocate" pour enteriner les bons usages des méthodes reconnues et éprouvées.
et c'est alors en connaissance de cause que l'on peut alors élaguer, s'éloigner des sentiers battus,
faire figure d'herétique, de sessessioniste, d'irrespectueux des rites établis...

C'est la méthode utilisée par tous les précurseurs, inventeurs, explorateurs, découvreurs, chercheurs ;o)))
(combien n'ont rien trouvé, leurs travaux ont cependant permit d'étayer, invalider et/ou renforcer "la" régle)
et lorsque l'on ouvre une bréche fonctionnelle, constructive, reproductible...
il convient alors de s'assurer de sa compatibilité ou non avec "la" régle établie,
et éventuellement alors faire modifier ou enrichir "la" régle !!!

--
@+
;o)))

Avatar
francois.forcet
Rebonjours Misange

Dommage ta réponse qui voit en moi un borné qui ne veux pas adhérer
aveuglément à une vision qui n'est pas mienne sans raison tangible

Tu t'inscrits en faux dans 2 de mes propos qui finalement deviennent
tes arguments pour défendre ta perception des choses

Quand je parle de rapidité ce n'est que pour ceux qui ne recherche
qu'une solution clef en main
L'expérience me montre qu'ils sont la majorité de nos interlocuteurs
Ils ne sont pas à critiquer mais à respecter dans cette démarche

Quant à l'intêret du forum de former les lecteurs il n'est
malheureusement qu'un voeux pieux car je n'ai pu constater à ce jour
que des lignes de code sans l'once d'une explication assimilable par
un néophite à quelques exception prés
J'ai moi même tenté l'expérience qui ne pas réussi alors que je pens er
faire oeuvre de bienfaisance sans autre mauvaise intention je me suis
fait copieusement remettre à ma place

J'ai donc opter pour le silence sur ce registre

Dommage car je n'avais l'intention que de bien faire

Et au débutant qui prend la route je lui proposerai d'apprendre le
code de la route mais pas le code pénal qui pourtant pourrait bien lui
servir lors de certains sinistres

Restons à l'essentiel
Avatar
MichDenis
| ta réponse qui voit en moi un borné
*** On ne voit pas, on constate et c'est sans équivoque

| qui n'est pas mienne sans raison tangible
*** Probablement très ferré en tergiversation mais pas
beaucoup en argumentation

Je te suggère d'écrire ton code de cette manière ... comme
si c'était de la poésie et pourquoi pas... je te rappelle que tu
as droit à 1024 caractères par ligne environ.
C'est hyper cool, hyper tendance, hyper pratique et c'est moins
fatiguant pour l'oeil.... et si VBA le permet, Pourquoi pas ?

Une procédure écrite sur 2 lignes dans une fenêtre VBA
Sub Test() .... et
End Sub
'-----------------
Sub Test(): Fichier = Application.GetOpenFilename("Fichier Excel (*.xls), *.xls", 1, "Choisir votre
fichier excel", , False): If Format(Fichier) = False Then Exit Sub Else: Workbooks.Open Fichier: Set
xl = Nothing
End Sub
'-----------------

Et dans tes temps libres, tu peux toujours demander à Microsoft pourquoi on ne peut pas
écrire End Sub sur la même ligne lorsqu'il reste encore de l'espace sur la ligne précédente,
ça faciliterait la lecture et l'espace requise ! Bonne chance ! ;-)))

| Quant à l'intêret du forum de former les lecteurs
*** Chacun prend ce qui lui convient... perso, je m'en balance
Le forum n'est pas une église, une secte ...et il n'essaie pas de convertir personne... même
toi.

| J'ai moi même tenté l'expérience qui ne pas réussi alors que je penser
| faire oeuvre de bienfaisance sans autre mauvaise intention je me suis
| fait copieusement remettre à ma place
*** Probablement trop de verbiage et pas assez de contenu ;-))

Rien comme une grande marche en plein air...pour continuer votre méditation !

;-))))))))))))))))))))))))))))
Avatar
Jacquouille
Bonsoir François,

Errare humanum est
Perseverare diabolicum est.

Perso, et sans être un gourou, je vois au moins deux bonnes raisons de
déclarer ses variables.
1- Cela permet à Excel de ne réserver que la place dont on a besoin
2- Cela permet d'avoir sous les yeux le libellé exact de ces variables. Et
si, comme moi, tu termines ta déclaration par une apostrophe puis la
traduction en clair, alors tu es paré contre les trous de mémoire.
-----------
Et pour terminer, je suggèrerai de ne pas être trop pointu dans tes propos.
Il y a ici beaucoup de grosses pointures en Excel, qui ne sont pas
nécessairement séniles ni accro aux manies "de dans le temps". S'ils
déclarent volontiers leurs variables, c'est qu'il doit bien y avoir une
raison. Non?
Quand on croit avoir une nouvelle idée et qu'elle est bonne, il est de bon
ton de la publier, la décortiquer....mais sans vouloir l'imposer.
Dernier truc perso : Je ne trouve pas que la vitesse soit un critère pour
une qualité de macro, comme tu l'as souligné. Je préférerais la lisibilité
du texte bien ordonné. Mais ce n'est qu'un avi perso.
Bonne soirée.
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

a écrit dans le message de news:

Rebonjours Misange

Dommage ta réponse qui voit en moi un borné qui ne veux pas adhérer
aveuglément à une vision qui n'est pas mienne sans raison tangible

Tu t'inscrits en faux dans 2 de mes propos qui finalement deviennent
tes arguments pour défendre ta perception des choses

Quand je parle de rapidité ce n'est que pour ceux qui ne recherche
qu'une solution clef en main
L'expérience me montre qu'ils sont la majorité de nos interlocuteurs
Ils ne sont pas à critiquer mais à respecter dans cette démarche

Quant à l'intêret du forum de former les lecteurs il n'est
malheureusement qu'un voeux pieux car je n'ai pu constater à ce jour
que des lignes de code sans l'once d'une explication assimilable par
un néophite à quelques exception prés
J'ai moi même tenté l'expérience qui ne pas réussi alors que je penser
faire oeuvre de bienfaisance sans autre mauvaise intention je me suis
fait copieusement remettre à ma place

J'ai donc opter pour le silence sur ce registre

Dommage car je n'avais l'intention que de bien faire

Et au débutant qui prend la route je lui proposerai d'apprendre le
code de la route mais pas le code pénal qui pourtant pourrait bien lui
servir lors de certains sinistres

Restons à l'essentiel
Avatar
francois.forcet
Salut Jacquouille
Je vais tenter de te répondre avec le maximum d'ouverture d'esprit
Mais qui dit ouverture sur ta perception de ma part dit aussi
ouverture sur ma percetion de la tienne et des autres
Toute manière de pensée à droit d'exister
Leur confrontation doit permettre leur évolution de manière
convergente et non l'absortion de l'une d'entre elle au nom d'une soit
disante supériorité interdisant toute forme de remise en cause de
celle-ci et conduisant à sa dictature et soumission faisant de la
pensée supprème la référence à suivre
Sommes nous des moutons de Panurge ????

Je te reconnais donc et je le respecte par voie de conséquence le
droit d'estimer comme déterminant les 2 bonnes raisons que tu cites
pour trouver indispensable de déclarer les Variables
Mais ais je la possibilité dans l'éventail de tolérence de ce Forum de
ne pas partager cette perception sans me voir cataloguer d'obstiner de
tétu voir même borner ???

Si pour exister avec ses convictions et avoir droit de les défendre au
nom d'une liberté de penser il faut revertir le costume de tous ces
attributs alors c'est avec fierté que je l'arborerai

Et de tous les arguments qui mon été fourni sur le sujet je ne
retiendrais que le confort de la démarche et non une incontournable
nécessité

Ce qui était le sens de mon propos :

"Non pas besoin de déclarer la variable le code fonctionne en l'état "
Avatar
Modeste
Bonsour® avec ferveur ;o))) vous nous disiez :

Sommes nous des moutons de Panurge ????


;o)))
comme diraient "Paul et Mickey"
c'est là toute la latitude entre :
Education (faire comme il est dit)
Liberté (faire comme bon nous semble)
Révisionisme (faire le contraire de ce qui est dit)
;o)))





--
--
@+
;o)))

Avatar
Jacquouille
Bonjour
Je reconnais à tout un chacun le droit d'avoir ses propres idées (et c'est
mieux ainsi).
Je reconnais à tout un chacun le droit de ne pas partager les miennes
....pour autant que la discussion qui devrait s'en suivre ne soit pas un
monologue et que les deux parties fassent preuve d'ouverture d'esprit et de
critique positive.
Ainsi, pour ta ou tes déclarations, je persiste à dire que c'est
mieux....mais ta macro, c'est ton problème. Tu en fais ce que tu veux.
Sur ce, je stoppe car c'est pas un forum fr.psy ni fr.droit
N'oublie cependant pas que même les moutons de Panurge, ils ont du obéir à
l'autorité parentale et à certaines lois. -))
Bonne chance
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

a écrit dans le message de news:

Salut Jacquouille
Je vais tenter de te répondre avec le maximum d'ouverture d'esprit
Mais qui dit ouverture sur ta perception de ma part dit aussi
ouverture sur ma percetion de la tienne et des autres
Toute manière de pensée à droit d'exister
Leur confrontation doit permettre leur évolution de manière
convergente et non l'absortion de l'une d'entre elle au nom d'une soit
disante supériorité interdisant toute forme de remise en cause de
celle-ci et conduisant à sa dictature et soumission faisant de la
pensée supprème la référence à suivre
Sommes nous des moutons de Panurge ????

Je te reconnais donc et je le respecte par voie de conséquence le
droit d'estimer comme déterminant les 2 bonnes raisons que tu cites
pour trouver indispensable de déclarer les Variables
Mais ais je la possibilité dans l'éventail de tolérence de ce Forum de
ne pas partager cette perception sans me voir cataloguer d'obstiner de
tétu voir même borner ???

Si pour exister avec ses convictions et avoir droit de les défendre au
nom d'une liberté de penser il faut revertir le costume de tous ces
attributs alors c'est avec fierté que je l'arborerai

Et de tous les arguments qui mon été fourni sur le sujet je ne
retiendrais que le confort de la démarche et non une incontournable
nécessité

Ce qui était le sens de mon propos :

"Non pas besoin de déclarer la variable le code fonctionne en l'état "
1 2 3 4 5