Remplir cellule excel sur critère

Signaler
Messages postés
7
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
14 juin 2008
-
Messages postés
6
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009
-
Bonjour à toutes et à tous
J'ai un soucis sur excel en vba
Dans la plage 1 ("A1:AE1") j'ai une série des jours de la semaine (lun, mar, mer, jeu, ven, sam, dim)
Dans la plage 2 ("A2:AE30") j'ai prévu de mettre des congés et autres petits trucs

Ce que je cherche à faire c'est que dans la plage 2, il y ai un "x" par rapport aux sam et dim de la plage 1SANS UTILISER DE MFC,
car il faudra par la suite compter le nombre de cellule de couleur

Merci d'avance. @+

9 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

mettre un X pour les samedi et dimanche cela revient a dire je ne veux pas des samedi et dimanche alors pourquoi tu les mets dans ton tableau ?

Si tu ne peux t'en passer tu n'as pas besoin besoin de macro ça c'est dela mise en forme car une fois fait cela ne changera jamais vu que tu tiens compte du nom du jour et pas de la date.

Et si tu ne peux vraiment pas te passer de la macro, alors tu as juste a boucler sur la premier ligne et chaque fois que tu trouves un samedi ou un dimanche tu remplis ta colonne de X jusqu'a la derniere ligne de la plage2.
Mais ne fais pas de recherche sur la plage 2 en fonction de la plage 1 car cela vas prendre un temps fou pour rien !
Pour te donner un ordre d'idee et au vue de la taille de ton tableau cela reviendrait a verifier 30^3 cellules (27000) pour des cellules qui ne servent a rien

A+
Messages postés
7
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
14 juin 2008

Tu as raison pour la première partie, mais il se peut qu'il y ai des sam ou dim travaillés lors de l'année. C'est pour ça que je ne veux pas utiliser de mfc.
Tu aurais un code vba svp

Merci d'avance @+
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Si tu veux augmenter tes chances d'avoir des réponses, ne cliques pas "Réponse acceptée" tant que ton problème n'est pas résolu totalement. Tu peux inverser en resélectionnant ce bouton. Les gens qui passent et qui voient que tu as accepté vont continuer leur chemin sans s'y arrêter, pensant que c'est résolu.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
7
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
14 juin 2008

merci pour l'info mais j'ai toujours besoin de savoir comment faire? aidez moi svp
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
...

Sub XpourWeekEnd()
Dim Plage1 As Range, MaCellule As Range

Set Plage1 = Range("A1:AE1")
For each MaCellule in Plage1    If Lcase(MaCellule.Value) "samedi" or Lcase(MaCellule.Value) "dimanche" then
       Range(Cells(2,MaCellule.Column),Cells(30,MaCellule.Column)).value = "X"
    End If
Next
End Sub

A+ (j'en suis sur )
Messages postés
7
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
14 juin 2008

Merci beaucoup pour ce merveilleux code bigfish.
il marche à merveille.

@+
Messages postés
6
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009

Bonjour le forum
Pour continuer sur la ligné de remplissage de cellule, ma demande et toute simple mais pour une kich en VB comme moi c'est un casse tete chinois

Je souhaite un bouton qui me permet de copier tous simplement des cellules de mon tableau vers d'autres cellules.

Merci d'avance
3ziwez
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Il faudrait que tu précises comment tu veux copier ces données.
Si tu veux prendre une plage et la copier telle quelle ou si tu veux copier seulement certains cellules et ne pas nécessairement les placer dans le même ordre...

En principe, tu peux utiliser la commande Copy

Sheets("Feuil1").Range("A1:D10").CopySheets("Feuil2").Range("A1")

Tu as donc la plage à copier et sa destination dans la même ligne de code.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
6
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009

Bonjour le forum bonjour MPi,
Je vous remercie tous d'abord pour la réponse mais c'est pas tout a fait ça.
Je m'explique: J'ai deux boutons qui me permettent de cacher ou faire apparaitre des colonnes (Bouton privé et un autre public).
Et maintenet je souhaite que à le mot privé ou public s'inscrit dans une cellule (par exemple (H1) a chaque fois que quelqu'un clique dessus pour que l'utilisateur sache la catégorie utilisée.

Merci
3ziwez