Coller une selection si une cellue égale une

Résolu/Fermé
guillaume660 - 13 mars 2011 à 11:47
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 14 mars 2011 à 11:29
Bonjour,

Je suis débutant dans la programmation et j'espère qu'il est possible de trouver une solution. J'ai parcouru le forum mais je n'ai pas trouver de réponse.

Je vous explique mon énigme :(tout se passe sur la même feuille) :

Sur la sélection C4:C24 j'ai une série de chiffre avec en C4 le mois.

En dessous j'ai un tableau de C29 à O49 avec sur la ligne C29/N29 tous les mois de l'année.

Je voudrais que lorsque la cellule C4 change (par exemple devient MARS), les éléments qui sont dessous (C5:C24) soient collés en valeur sous le mois qui correspond dans le tableau C29/O49.

Est-ce possible ?

Merci, guillaume.

6 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 13/03/2011 à 13:35
Bonjour,
Y a probablement moyen par formule mais moi c'est en VBA.
En C4 mettre une liste de validation avec comme source la plage C29:N29
Pour ne pas avoir d'erreur dans l'écriture du mois.
Ensuite coller le code ci-dessous dans le module de la feuille.
Clic droit sur l'onglet de la feuille >> Visualiser le code, dans cette fenêtre..
Private Sub Worksheet_Change(ByVal Target As Range)  
Dim Col As Integer  
    If Target.Count > 1 Then Exit Sub  
    If Target = "" Then Exit Sub  
    If Not Intersect(Target, [C4]) Is Nothing Then  
        For Col = 3 To 14  
            If Cells(29, Col) = [C4] Then  
                Exit For  
            End If  
        Next Col  
         
        Range(Cells(30, Col), Cells(49, Col)).Copy  
        Range("C5").PasteSpecial xlPasteValues  
        Application.CutCopyMode = False  
        Range("C4").Select  
    End If  
End Sub

Comme tu parle de "Valeurs je suppose que dans le tableau ce sont des formules ? si non, y a moyen de faire plus cour.
Et ton tableau, en principe y va de C à N et pas de C à O ?
Tu dis.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
0
guillaume660
13 mars 2011 à 16:05
Bonjour lermite222, et merci de ta réponse rapide et claire !!!

En fait mon tableau va de C à N (N29 étant Décembre) Je vais supprimer la colonne O.

Oui en effet les cellules de C5 à C24 sont des formules.

En revanche j'ai une question bête mais comment utiliser cette macro ? Car j'ai déjà une macro effectuant plusieurs actions et je pensait mettre ton code à la suite.

En clair je sais utiliser une macro commençant par Sub... que je peux affecter à un bouton. Mais là j'avoue ne pas savoir comment m'y prendre.

Cordialement
Guillaume
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 mars 2011 à 17:39
Clic droit sur l'onglet de la feuille >> Visualiser le code... Dans la feuille tu colle le code.
C5 à C29 doivent être vides (pas de formule)

A+
0
guillaume660
13 mars 2011 à 18:19
Merci pour ton aide lermite222, malheureusement ça ne fonctionne pas.

Les cellules en dessous de C5 sont forcément des formules.

Merci quand même !
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 mars 2011 à 22:34
Là y a quelque chose qui m'échappe... comment veux-tu afficher l'équivalent d'une colonne de ton tableau dans C5:C20 si ce sont des formules ??
Quel formule dans C5 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guillaume660
14 mars 2011 à 09:50
C'est les données de C5 à C24 que je veux coller sous une des cellules de C29 à N29 :
"Je voudrais que lorsque la cellule C4 change (par exemple devient MARS), les éléments qui sont dessous (C5:C24) soient collés en valeur sous le mois qui correspond dans le tableau C29/O49."


Il y a du avoir confusion, désolé si mon message n'était pas compréhensible.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 mars 2011 à 11:29
Non, c'est moi qui ai lu à l'envers.
En C4 mettre une liste de validation avec comme source la plage C29:N29
Pour ne pas avoir d'erreur dans l'écriture du mois.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
    If Target.Count > 1 Then Exit Sub
    If Target = "" Then Exit Sub
    If Not Intersect(Target, [C4]) Is Nothing Then
        For Col = 3 To 14
            If Cells(29, Col) = [C4] Then
                Exit For
            End If
        Next Col
        Range("C5:C24").Copy
        Cells(30, Col).PasteSpecial xlPasteValues
        Application.CutCopyMode = False
        Range("C4").Select
    End If
End Sub

A+
0