Afficher des résultats dans une colonne spécifique en fonction d'une valeur

  • Initiateur de la discussion Initiateur de la discussion affitest
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

affitest

XLDnaute Nouveau
Bonjour,

J'ai bien cherché dans le forum mais je n'ai pas trouvé ce que je voulais (peut être à tort..)
Je souhaiterai pouvoir afficher des résultats dans une colonne spécifique en fonction de la valeur d'une cellule.

Exemple :
Si ma cellule B1 contient janvier
J'aimerai que les chiffres situés en colonne B s'affichent aussi en colonne D

Si ma cellule B1 contient février
J'aimerai que les chiffres situés en colonne B s'affichent aussi en colonne E

...

Je ne sais pas si c'est très clair mais comme on dit un fichier vaut mieux que plusieurs explications (enfin j'espère)

Merci d'avance pour votre aide sur ce point.
 

Pièces jointes

Re : Afficher des résultats dans une colonne spécifique en fonction d'une valeur

Bonjour Affitest, bonjour le forum,

En pièce jointe ton fichier modifié avec la macro événementielle Change ci-dessous. Tape une date en B1 et valide...
le code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim m As Byte 'déclare la variable m (mois)'définit la variable m (Mois)

If Target.Address <> "$B$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en B1, sort de la procédure
m = Month(Range("B1").Value) 'définit le mois m
If Target.Value = "" Then 'condition : si B1 est effacée
    With Range("D4:O11") 'prend en compte la plage D4:O11
        .ClearContents 'efface la plage
        .Interior.ColorIndex = xlNone 'supprime les couleurs
    End With 'fin de la prise en comte de la plage
Else 'sinon
    With Range("D4:O11") 'prend en compte la plage D4:O11
        .ClearContents 'efface la plage
        .Interior.ColorIndex = xlNone 'supprime les couleurs
    End With 'fin de la prise en comte de la plage
    Range("B4:B11").Copy Range("B4").Offset(0, 1 + m) 'copie la plage B4:B11 dans la cellule B11 décalée de m+1 colonnes
End If 'fin de la condition
End Sub
J'ai remplacé les références relatives par des références absolues dans la plage B4:B11...
Le fichier :


 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour