Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

affichage année correspondant à un record dans une cellule.

  • Initiateur de la discussion Initiateur de la discussion ricomomone
  • 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 !

R

ricomomone

Guest
Bonjour,
Je ne suis pas très chevronné sur excel.
Comment afficher l'année correspondant à un record dans le tableau ci-joint

Le tableau est fait à partir d'un classeur avec feuilles représentant les années sur excel 2003.

Merci d'avance pour la réponse.
 

Pièces jointes

Re : affichage année correspondant à un record dans une cellule.

Je ne vois aucune objection pour la modification. Saches que la colonne vide sert à noter les jours de neige (voir feuille janv 2013 par exemple). J'ai placé dans la feuille records tes formules. Pour les classeurs avril à octobre cette colonne "vide" n'existe pas vu qu'il n'y a pas de neige ces mois la. Que me conseilles-tu la dessus ? la garder même s'il n'y a pas de neige ?
les feuilles suivantes sont saisies par moi-même et OK pour la macro.
 
Re : affichage année correspondant à un record dans une cellule.

Bonjour,

Pour la colonne "vide" ... si elle contient parfois des données, la question ne se pose plus (puisqu'elle n'est pas vide! 😀). La structure de toutes tes feuilles doit être rigoureusement identique. Donc ne supprime pas cette colonne, même les mois où elle n'est pas utilisée (sinon, les suivantes seraient décalées vers la gauche)
Dans le même ordre d'idée, les valeurs encodées devront toujours l'être dans les même lignes aussi! Chaque feuille doit donc compter 33 lignes avant que les totaux ne soient insérés. Pour les mois de 30, 29 ou 28 jours, les lignes 33, 32 ou 31 resteront vides.

Dans la pièce jointe, j'ai testé le Max pour les colonnes Insolation. De cette manière, dans la macro, tu verras les différences pour le traitement des 2 cas (Pluie - Insolation). Les chiffres de 2014 sont beaucoup plus élevés que ceux des autres années ... Les résultats paraissent donc un peu curieux 😕
Je n'ai mis ici que les valeurs, puisque je n'ai laissé que la feuille des records.

Ce que tu dois faire, de ton côté:
- fais une copie de sauvegarde de ton fichier avant tout! 🙂
- fais en sorte que dans tes 100 feuilles, l'ordre des colonnes soit celui sur lequel nous sommes apparemment d'accord: la colonne "Insolation" pour Poitiers repasse en G. Dis-nous si tu as besoin d'indications pour le faire en une seule fois.
- fais ensuite une copie de ces 100 feuilles dans le classeur ci-dessous avant la feuille records (ici aussi, dis-nous si tu as besoin d'aide pour faire la manip.)
- dans les différentes colonnes concernées, insère la fonction MAX, comme tu l'avais fait auparavant
- enregistre les modifications apportées au fichier
- respire un grand coup et teste le bouton rouge en haut de la colonne W
 

Pièces jointes

Re : affichage année correspondant à un record dans une cellule.

Bonjour,
On sait mal compris, j'en suis désolé. Je pense qu'il faut faire comme le tableau des pluies c'est à dire insérer ta fonction =DateDuRecord dans les cellules C34, C35, E34, E35, G34, G35, I34, I35, K34, K35, C37, C38, E37, E38, G37, G38, K37, K38 (autrement les dates restantes). Est-ce que c'est plus clair pour toi ?
Pour info, les insolations sont en minutes à partir de janv 2009, d'où les chiffres plus élevés.
J'ai bien permuté la colonne "insolation" dans mes 100 feuilles.
La copie de ces 100 feuilles dans ton classeur se fera après ta réponse.
J'ai voulu envoyer ton classeur légèrement modifié mais je n'ai pas trouvé de sigle "pièce jointe" au moment d'envoyer cette réponse.
 
Re : affichage année correspondant à un record dans une cellule.

ricomomone à dit:
J'ai voulu envoyer ton classeur légèrement modifié mais je n'ai pas trouvé de sigle "pièce jointe" au moment d'envoyer cette réponse.
Sous la zone d'édition, quand tu rédiges ton message, clique sur "Aller en mode avancé"

ricomomone à dit:
On s'est mal compris
C'est fort possible (voire même certain! 🙂) ... Si tu pouvais être un peu moins "chiche" en explications, ce serait bien. Tu veux dire que les colonnes que j'ai ajoutées en L à U ne correspondent pas à tes attentes?

Pourrais-tu donc déposer un fichier contenant la seule feuille "records janv" en:
- précisant ce qui doit figurer dans les colonnes au-delà de la colonne K, pour les lignes 1 à 35? Dans ton fichier, les données sont les mêmes que dans les colonnes B à K, avec les colonnes dans un autre ordre avec parfois des formules, parfois juste des valeurs!?
- expliquant pourquoi, dans tes formules, tu prends parfois les données des feuilles de 1921 à 2014, parfois depuis 1961 seulement et d'autres fois encore, à partir de 1976? S'il y a une raison à ces différences, la macro n'est absolument pas prévue pour en tenir compte!
- réarrangeant un peu les données des lignes 37 et 38 (pourquoi des cellules vides de L37 à O38?). Pas de résultats pour "Lyon-Satolas"?

D'autre part,
- si les chiffres d'insolation sont exprimés en minutes depuis 2009, les MIN et MAX sur ces données risquent d'être difficiles à interpréter 😕
- que représente le chiffre en J37? ... Et celui isolé en S37?
- les formules en F37 et F38 sont-elles correctes?
 
Re : affichage année correspondant à un record dans une cellule.

Bonjour,
Je t'envoie ton classeur modifié. Les colonnes des dates ont été alignées pour plus clarté.
Intéresses-toi uniquement aux colonnes jaunes.
Les relevés météo ne débutent pas tous en même temps: Le poste de Lyon-Bron, par exemple, commence en 1921. Ceux de Tours, Poitiers, Creil en 1965 et celui de Lyon-Satolas en 1976. C'est la raison pour laquelle les formules ne sont pas les mêmes. L'ensoleillement n'est plus mesuré à Lyon-Satolas depuis 2009, d'où les cellules vides H37 à I38.
Dans le tableau de l'ensoleillement, les valeurs sont mensuelles et calculées en heures. J'ai converti les totaux de 2009 à 2014 en heures.
 
Re : affichage année correspondant à un record dans une cellule.

Bonjour,
Je t'envoie ton classeur modifié. Les colonnes des dates ont été alignées pour plus clarté.
Intéresses-toi uniquement aux colonnes jaunes.
Les relevés météo ne débutent pas tous en même temps: Le poste de Lyon-Bron, par exemple, commence en 1921. Ceux de Tours, Poitiers, Creil en 1965 et celui de Lyon-Satolas en 1976. C'est la raison pour laquelle les formules ne sont pas les mêmes. L'ensoleillement n'est plus mesuré à Lyon-Satolas depuis 2009, d'où les cellules vides H37 à I38.
Dans le tableau de l'ensoleillement, les valeurs sont mensuelles et calculées en heures. J'ai converti les totaux de 2009 à 2014 en heures.
 
Re : affichage année correspondant à un record dans une cellule.

Re,


Il a dû rester coincé en chemin! 😕

[Edit:] salut Modeste geedee ... et à quel membre ledit fichier serait-il transmis?

Bonjour,
Je crois que c'est bon, cette fois !!!
 

Pièces jointes

Re : affichage année correspondant à un record dans une cellule.

Bonjour,

Je n'obtiens pas absolument partout les mêmes résultats (mais pour la très grande majorité, oui ... il reste de toute manière le double '0,00' en D34 et D35)

J'ai appliqué le même principe que précédemment: c'est l'année record la plus récente qui est indiquée.

J'ai indiqué 2-3 "points de repères" dans le code. Tu peux changer tout ce que tu veux au niveau de la mise en forme, mais sois vigilant à ne pas modifier l'emplacement des données (ou assure-toi au préalable que tu vois ce qu'il faut modifier dans le code)

Tu peux déplacer le bouton qui figurait en colonne W, pour le ramener en colonne N, par exemple. La date de mise à jour apparaîtra en O4 (j'ai commenté cette ligne dans le code, si tu veux changer)

Copie les lignes ci-dessous et colle-les à la place du code du Module1 ... et croisons les doigts!
VB:
Sub annéeDuRecord()
    Application.ScreenUpdating = False
    With Sheets("records janv")
    
    .[O4] = Date 'Date dernière mise à jour
    
    ' ** Recherche des records pluviosité
    Set plageMaxPluie = Union(.[C3:C33], .[E3:E33], .[G3:G33], .[I3:I33], .[K3:K33])
    tabCol = Array(2, 0, 5, 0, 8, 0, 11, 0, 14) 'pour la localité concernée, n° de la colonne dans les feuilles
    For Each c In plageMaxPluie
        For sh = Sheets.Count - 1 To 1 Step -1
            If Sheets(sh).Cells(c.Row, tabCol(c.Column - 3)) = c.Offset(0, -1) Then c.Value = Right(Sheets(sh).Name, 4): Exit For
        Next sh
    Next c
    
    ' ** Totaux, max et min des lignes 34 à 38
    For sh = Sheets.Count - 1 To 1 Step -1
        ' "Totaux mini" en ligne 34
        If Sheets(sh).[B34] = .[B34] Then: If .[C34] = "" Then .[C34] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[E34] = .[D34] Then: If .[E34] = "" Then .[E34] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[H34] = .[F34] Then: If .[G34] = "" Then .[G34] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[K34] = .[H34] Then: If .[I34] = "" Then .[I34] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[N34] = .[J34] Then: If .[K34] = "" Then .[K34] = Right(Sheets(sh).Name, 4)
        ' "Totaux maxi" en ligne 35
        If Sheets(sh).[B34] = .[B35] Then: If .[C35] = "" Then .[C35] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[E34] = .[D35] Then: If .[E35] = "" Then .[E35] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[H34] = .[F35] Then: If .[G35] = "" Then .[G35] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[K34] = .[H35] Then: If .[I35] = "" Then .[I35] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[N34] = .[J35] Then: If .[K35] = "" Then .[K35] = Right(Sheets(sh).Name, 4)
        ' "Ensoleillement mini" en ligne 37
        If Sheets(sh).[D34] = .[B37] Then: If .[C37] = "" Then .[C37] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[G34] = .[D37] Then: If .[E37] = "" Then .[E37] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[J34] = .[F37] Then: If .[G37] = "" Then .[G37] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[P34] = .[J37] Then: If .[K37] = "" Then .[K37] = Right(Sheets(sh).Name, 4)
        ' "Ensoleillement maxi" en ligne 38
        If Sheets(sh).[D34] = .[B38] Then: If .[C38] = "" Then .[C38] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[G34] = .[D38] Then: If .[E38] = "" Then .[E38] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[J34] = .[F38] Then: If .[G38] = "" Then .[G38] = Right(Sheets(sh).Name, 4)
        If Sheets(sh).[P34] = .[J38] Then: If .[K38] = "" Then .[K38] = Right(Sheets(sh).Name, 4)
    Next sh

    End With
    Application.ScreenUpdating = True
End Sub
 
Re : affichage année correspondant à un record dans une cellule.

Dis-moi comment copier mes 100 feuilles dans ton classeur ?
 
Re : affichage année correspondant à un record dans une cellule.

Dis-moi comment copier mes 100 feuilles dans ton classeur ?
Demandé si gentiment ... je m'empresse 🙄

Au passage, n'utilise peut-être pas systématiquement le "Répondre avec citation" ... un simple "Répondre" devrait suffire (la plupart du temps)

Pour la copie des 100 feuilles (ou peu importe leur nombre)
- ouvrir les deux fichiers simultanément (le mien et celui avec les 100 feuilles ... penser à prendre la version avec la colonne "Insolation" pour Poitiers en colonne G!)
- dans le fichier des 100 feuilles, cliquer sur l'onglet de la première feuille à copier
- en utilisant les flèches à gauche des onglets, parcourir l'ensemble des autres feuilles et lorsque la dernière feuille concernée est visible, enfoncer la touche Shift (Majuscule) et cliquer sur l'onglet de cette dernière feuille à sélectionner (tous les onglets sélectionnés sont blancs au lieu de gris). En Xl 2013, il y a une option "Sélectionner toutes les feuilles" dont je ne sais plus si elle était présente dans les versions antérieures 😕. Si oui, l'utiliser, puis en maintenant Ctrl enfoncé, dé-sélectionner la(les) feuille(s) "en trop".
- faire un clic droit sur un des onglets sélectionnés, choisir "Déplacer ou copier..."
- s'empresser de cocher la case "créer une copie"
- dans la liste déroulante en haut de la boîte de dialogue, sélectionner mon fichier
- comme emplacement avant la feuille, choisir: "records janv"
- valider ... et patienter quelques instants
 
Re : affichage année correspondant à un record dans une cellule.

Bonjour,
Je t'envoie ton classeur avec les formules introduites et mes 100 feuilles ajoutées. Excel me signale une erreur: "erreur '13' incompatibilité de type".Qu'est-ce que ça veut dire ?
 

Pièces jointes

Re : affichage année correspondant à un record dans une cellule.

Bonjour,

J'ai rédigé ma réponse hier ... mais visiblement j'ai oublié de cliquer sur "Envoyer" (c'est en m'étonnant du temps que tu mettais à répondre que je m'en suis aperçu 😱)

J'y disais donc que si la fonction AnnéeDuRecord n'existait plus dans le Module1, il ne fallait plus l'utiliser. J'ajoutais même "surtout sans parenthèses".
C'est la présence du message d'erreur #NOM? qui perturbe la macro (particulièrement quand je lui demande de vérifier si .[C34]="".
Efface donc le contenu des cellules jaunes et relance la macro ... ça devrait aller mieux, concluais-je.

Désolé pour le délai!
 
Re : affichage année correspondant à un record dans une cellule.

Bonjour,
J'ai testé ton classeur. Visiblement, les tableaux "total mini et maxi", "ensoleillement mini et maxi" sont à revoir. Par exemple, les dates ne changent pas lorsque l'on rajoute une feuille avec simulation de record. Le tableau des pluies fonctionne, à priori. Si je vois une erreur, je te tiendrais au courant. Suite au prochain épisode !!
Cordialement.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
242
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…