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

XL 2016 Repérer dernière colonne

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

KTM

XLDnaute Impliqué
Salut Tout le Forum
J aimerais à l'aide de code récupérer en N1 le mois concernant la dernière colonne remplie de ma table ( Voir Fichier joint )
Dans l"exemple ci ça sera le mois d'octobre 2019
Merci et bon début de journée.
 

Pièces jointes

Re KTM, Mapomme,
Le problème de la nouvelle colonne, c'est que ce n'est peut être pas applicable dans le fichier utilisé ( je suppose que KTM n'a fourni qu'un court extrait )
Le problème du VBA, ... c'est le VBA quand on ne connait pas.
Maintenant KTM a deux solutions.
 
Bonjour KTM, sylvanu, mapomme,

Voyez le fichier .xlsx joint et cette formule matricielle, à valider par Ctrl+Maj+Entrée :
Code:
=INDEX(3:3;MAX(SIGNE(SOUS.TOTAL(3;DECALER(A4:A10;;COLONNE(3:3)-1)))*COLONNE(3:3)))
Je n'ai pas regardé encore la solution de mapomme.

A+
 

Pièces jointes

Re, @KTM, @sylvanu,
Le problème de la nouvelle colonne, c'est que ce n'est peut être pas applicable dans le fichier utilisé ( je suppose que KTM n'a fourni qu'un court extrait )

J'ai eu un petit moment d'égarement 😉

Une formule plus simple en N3 sans colonne supplémentaire:
=INDEX(3:3;MAX(SI(B4:M10<>"";COLONNE(B4:M10);"")))
Cette formule est une formule matricielle.

edit : bonjour @job75 🙂
 

Pièces jointes

Dernière édition:
Re,

Préférez cette formule matricielle qui renvoie une chaine vide si le tableau est vide:
=SIERREUR(INDEX(3:3;GRANDE.VALEUR(SI(B4:M10<>"";COLONNE(B4:M10);"");1));"")
 
Dernière édition:
En effet il est inutile d'utiliser SOUS.TOTAL, finalement perso j'utiliserai :
Code:
=INDEX(3:3;MAX(SI(4:10<>"";COLONNE(4:10))))
Toujours avec validation matricielle, elle ne renvoie jamais d'erreur s'il n'y en a pas dans le tableau.
 
Merci à tous pour vos réponses .Toutes ces solutions m'aident et marchent dans mon cas.
Je voudrais expérimenter celle de Sylvanu mais un soucis avec la déclaration des variables

Function Derniere(Lig1, Col1, Lig2, Col2, Rien)
'Dim C, Col1, Col2, L, Lig1, Lig2, DC As Long
For C = Col1 To Col2
For L = Lig1 + 1 To Lig2
DC = Col2 + Col1 - C
If Cells(L, DC) <> "" Then
Derniere = Cells(Lig1, DC)
Exit Function
End If
Next L
Next C
End Function


en N1=Derniere(3;1;10;13;B3:M10)
 
En VBA j'utiliserai cette fonction sans boucle :
VB:
Function DernierMois(plage As Range)
If plage.Rows.Count = 1 Then Exit Function
Dim c As Range
Set c = plage.Rows(2).Resize(plage.Rows.Count - 1).Find("*", , xlValues, , xlByColumns, xlPrevious)
If Not c Is Nothing Then DernierMois = plage(1, c.Column - plage.Column + 1)
End Function
Formule en N1 du fichier joint =DernierMois(3:10)
 

Pièces jointes

- 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

Réponses
2
Affichages
282
Réponses
7
Affichages
259
Réponses
8
Affichages
270
  • Question Question
Microsoft 365 sos planning
Réponses
6
Affichages
1 K
Réponses
12
Affichages
226
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
238
Réponses
10
Affichages
511
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…