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
 

Pièces jointes

  • Classeur1.xlsm
    19.6 KB · Affichages: 23

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,

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+
 

Pièces jointes

  • Classeur(2).xlsm
    29.3 KB · Affichages: 22

Discussions similaires