[VBA] Aide Macro - Macro simple

Je voudrais créer une macro qui exécutera une manipulation différente en fonction de la valeur d’une cellule.
En gros je veux mettre de la couleur dans certaines cellules par rapport à une année saisie dans une cellule référence.

Voila ma macro de base :

[i]If A1 = 2005 Then
Range("B6").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If

If A1 = 2006 Then
Range("C6").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If

If A1 = 2007 Then
Range("D6").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If

End Sub
[/i]

pour l’instant ça colorise simplement les 3 cellules, l’année n’est même pas prise en compte, je pense que je ne maitrise pas du tout la condition, donc si une personne peut m’aider ça serais sympa.

Bonjour,

Peux tu ajouter le langage dans le titre ? (ici: Visual Basic for Application ([VBA]))

Merci d’avance.

Essaie comme ça :


Select Case Range("A1").Value
  Case 2005
   Range("B6").Select
  
  Case 2006
   Range("C6").Select
  
  Case 2007
   Range("D6").Select

 End Select

 With Selection.Interior
  .ColorIndex = 6
  .Pattern = xlSolid
 End With

Ok ça marche, je comprends toujours rien aux macros mais grace a ton aide ça fonctionne, merci beaucoup.

Pas besoin de macro pour ce que tu veux faire
C’est la fonction Format > Mise en forme Conditionnelle d’Excel

Je connais cette fonction mais en vérité je ne voulais pas mettre de la couleur dans une cellule mais formater un tableau selon une année donnée (afficher certaine colonne ou non) ma question ma permis de comprendre une fonction simple et de l’appliquer d’une façon différente.
Merci pour votre aide.

:jap:

J’ai encore un probleme sur mon tableau (j’ose pas poster un nouveau sujet pour mes petits problemes).
Donc dans mon tableau, je fais une formule matricielle qui repose sur 2 critére, la plage de cellule a aditionner contient des cellules vides (résultant d’un “” dans une formule), cela me renvoit une erreur #valeur.
Comment contourner cette erreur ? je sais que si dans ma plage a aditionner je remplace les “” par 0 ça fonctionne mais niveau présentation ce n’est pas ce que je recherche.

Ma formule pour information :

{=SOMME((J5:J39)(C5:C39=C50)(Y5:Y39=1))}

Si ton souci de présentation consiste à ne pas montrer les 0, tu peux choisir l’option dans excel de masquer les 0 (outils -> options -> affichage -> valeur nulle).

Sinon, la fonction SOMME marche chez moi, même lorsque j’ai des caractères au milieu de ma plage.

Tu as essayé avec la forme matricielle, telle que proposée dans l’exemple ?

T’a technique de masquer marche trés bien (comme quoi faut pas chercher compliqué, moi j’était partit sur la formule “estvide”, j’arrivais a rien :confused: ).

Par contre quand tu dis que la fonction marche chez toi c’est différent, moi c’est une somme en technique matricielle, ça me permet de selectionner plusieurs critéres pour faire la somme alors qu’avec le “somme.si” on a acces a un seul critère.

Mais ta réponse convient même si c’est pas vraiment ce que j’attendais merci beaucoup, cette fois j’espere que je vais arriver au bout de mon fichier.

gcc, jujutor,
J’avais pas fait gaffe à la formule matricielle (que je ne connaissais pas).
Nous aurons au moins tous appris qq chose :slight_smile: