Problème de fonction recherche de la valeur dernière colonne

donpopo

XLDnaute Occasionnel
Bonjour le forum,

J'ai un petit problème avec la fonction Cells(64, Columns.Count).End(xlToLeft).Value.
En effet, j'ai différentes colonnes remplies de nombres et en dessous une ligne reprenant les totaux de ces colonnes.

J'aimerais récupérer le dernier total calculé, soit la valeur de la dernière colonne où se trouve un total.
Mais cela m'affiche 0 tandis le numéro de colonne est toujours celui de la dernière colonne

Comme je peux comprendre, la faute est au fait que dans cette ligne de totaux, j’ai dans chaque cellule une formule qui calcule le total de la colonne. La fonction de recherche de la dernière colonne non vide est donc faussé car j'ai un 0 partout.

Mon exemple joint sera peut être plus clair.

Y a t'il un moyen de contourner ce problème? Personnellement, je tourne en rond.

Merci d'avance pour votre aide,

donpopo
 

Fichiers joints

JHA

XLDnaute Barbatruc
Bonjour à tous,

Cette formule matricielle te donne "90"
Code:
=INDEX($B$19:$T$19;;MAX(SI($B$19:$T$19<>0;COLONNE($B$19:$T$19)))-1)
Pour la colonne en validation matricielle
Code:
=MAX(SI($B$19:$T$19<>0;COLONNE($B$19:$T$19)))-1
JHA
 

donpopo

XLDnaute Occasionnel
Bonjour JHA,
En fait ma réponse, soit 90 en l’occurrence, doit s'afficher sur une autre feuille, ici sur la feuil2 par exemple.
De plus le nombre de colonne n'est pas figé et est indéfini. Je peux, à tout moment, rajouter un certain nombre de colonnes.
Comment corriger cette formule?
Merci,
donpopo
 

job75

XLDnaute Barbatruc
Bonjour donpopo, JHA, le forum,

Le code du bouton modifié :
Code:
Private Sub CommandButton1_Click()
Dim c As Range, dernTot As Integer, DernCol As Integer
With Range("B1:B18").Resize(, Columns.Count - 1) 'modifiable
    Set c = .Find("*", , xlValues, , xlByColumns, xlPrevious)
    If c Is Nothing Then MsgBox "Y a rien !": Exit Sub
    dernTot = Intersect(.Rows(.Rows.Count + 1), c.EntireColumn)
    DernCol = c.Column
    MsgBox ("Valeur " & dernTot & " et colonne " & DernCol)
End With
End Sub
Bonne journée.
 

job75

XLDnaute Barbatruc
Re,

Pour la solution par formules du fichier joint le tableau T est défini dynamiquement :
Code:
=DECALER(Feuil1!$A$1;;1;18;NB(Feuil1!$19:$19))
A+
 

Fichiers joints

job75

XLDnaute Barbatruc
Re,

Avec cette formule en Feuil1!B19 les solutions VBA et par formules sont bien plus simples :
Code:
=SI(NB.SI(B1:B18;">=0")+NB.SI(B1:B18;"<0");SOMME(B1:B18);"")
Fichier (2).

A+
 

Fichiers joints

donpopo

XLDnaute Occasionnel
Merci à tous deux,
chaque proposition me convient. Il est vrai que j'ai toujours un peu de mal à saisir les formules matricielles; Il faudrait que j'approfondisse un peu ce type de formule.
Encore merci,
A+
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas