Autres changer valeur cellule selon année

farid

XLDnaute Occasionnel
Bonjour a vous tous,
un petit coups de main a ma demande à savoir avec fichier en PJ.
Je souhaiterais changer les valeurs des tableaux sur l'onglet "résultat" en cliquant sur le menu déroulant O1 et qui m'affiche les résultats des onglets 2018/2019/2020/2021.
j'espère que ma demande est clair. Par avance merci
 

Pièces jointes

  • test 1.xlsm
    18.4 KB · Affichages: 27

farid

XLDnaute Occasionnel
Bonjour à tous,

Une proposition :
Bonjour DjiDji , merci pour ce retour qui fonctionne a merveille. Je souhaite abuser de tes connaissance pour aller un peu plus loin sur ce fichier , a savoir la faisabilité du choix sur R1 afficher le résultat dans le tableau TOTAL des tableaux ci dessus .Je te met le fichier en PJ et par avance, merci
 

Pièces jointes

  • test 1.xlsm
    22.2 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour farid, djidji59430,

Voyez le fichier .xlsm joint et ces macros dans le code de la feuille "Résultat" :
VB:
Private Sub Worksheet_Activate()
Dim r As Range, lig As Variant, cc%, i&, j%, w As Worksheet, v
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
Set r = [A1:M23] 'à adapter au besoin
r.Clear 'RAZ
Sheets(CStr([O1])).Range(r.Address).Copy r
Set r = [B26:M29] 'à adapter au besoin
r.ClearContents 'RAZ
lig = Application.Match([R1], [A:A], 0)
cc = r.Columns.Count
For i = 1 To r.Rows.Count
    For j = 1 To cc
        For Each w In Worksheets
            If Right(w.Name, 4) Like "####" Then
                v = w.Cells(lig + i, j + 1)
                If IsNumeric(CStr(v)) Then r(i, j) = r(i, j) + CDbl(v)
            End If
Next w, j, i
Application.EnableEvents = True 'réactive les évènements
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
Elles s'exécutent quand on modifie une cellule quelconque ou qu'on active la feuille.

A+
 

Pièces jointes

  • test(1).xlsm
    30.1 KB · Affichages: 2

job75

XLDnaute Barbatruc
On peut mettre une rubrique "Tous" dans la liste en colonne S, fichier (2) :
VB:
Private Sub Worksheet_Activate()
Dim r As Range, cc%, cible As Range, lig As Variant, i&, j%, w As Worksheet, v
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
Set r = [A1:M23] 'à adapter au besoin
r.Clear 'RAZ
Sheets(CStr([O1])).Range(r.Address).Copy r
Set r = [B26:M29] 'à adapter au besoin
r.ClearContents 'RAZ
cc = r.Columns.Count
For Each cible In IIf(UCase([R1]) = "TOUS", [S2:S5], [R1]) 'S2:S5 à adapter au besoin
    lig = Application.Match(cible, [A:A], 0)
    For i = 1 To r.Rows.Count
        For j = 1 To cc
            For Each w In Worksheets
                If Right(w.Name, 4) Like "####" Then
                    v = w.Cells(lig + i, j + 1)
                    If IsNumeric(CStr(v)) Then r(i, j) = r(i, j) + CDbl(v)
                End If
Next w, j, i, cible
Application.EnableEvents = True 'réactive les évènements
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
 

Pièces jointes

  • test(2).xlsm
    30.9 KB · Affichages: 3

farid

XLDnaute Occasionnel
Je ne comprends pas ce que tu demandes. Quels résultats doit-on obtenir dans ton nouveau tableau en choisissant bateau ?
Là, c'est le total 2018==>2021
Bonjour Djidji et Job75 et merci pour votre retour , effectivement je me suis mal compris. dans le tableau Total affiche un des tableaux bateau / Avion/........selon le choix de la liste déroulante en R1 .En gros un copier coller a l'identique .j'espère que je suis compris. Par avance, merci
 

farid

XLDnaute Occasionnel
Bonjour Djidji et Job75 et merci pour votre retour , effectivement je me suis mal compris. dans le tableau Total affiche un des tableaux bateau / Avion/........selon le choix de la liste déroulante en R1 .En gros un copier coller a l'identique .j'espère que je suis compris. Par avance, merci
j'ai oublié d'etre précis , uniquement les tableau de l'onglet résultât
 

djidji59430

XLDnaute Barbatruc
je suis désolé, dans ton nouveau fichier, je ne vois pas ce que tu veux.
Pour repondre a ta premiere question, remplis ce tableau a la main pour bateau

TotalJanvierFévrierMarsAvrilMaiJuinJuilletAoûtSeptembreOctobreNovembreDécembre
Préventive
Curative
Amélioration
Mofification

et renvoie le fichier, une fois le tableau rempli en expliquant comment tu trouves ces résultats
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 604
Membres
112 802
dernier inscrit
Dan Marc