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

Calculer le cumule ( en VBA)

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

Ilino

XLDnaute Barbatruc
Bonsoir Forum,
J’ai un tableau ( de n ligne)qui est alimenté par un USF, Mon soucis est :
Exemple je saisie le Nom A (dernière ligne dans ce cas) je souhaiterai avoir un cumule dans les colonnes J&K pour chaque cas ( Avec Solde et Sans Solde) ci-joint mon fichier avec exemple
Grazie
 

Pièces jointes

Re : Calculer le cumule ( en VBA)

Re,

Finalement la méthode Find est vraiment très lente.

Avec des tableaux VBA c'est beaucoup plus rapide.

Nouvelle fonction :
Code:
Option Compare Text 'la casse est ignorée

Function RECHVAL(v$, tablo1, tablo2)
'tablo1 => 1 colonne, tablo2 => 2 colonnes
Dim i&, t(1 To 2)
If tablo1.Count > 1 Then
  tablo1 = tablo1 'matrice
  tablo2 = tablo2 'matrice
  For i = UBound(tablo1) To 1 Step -1
    If tablo1(i, 1) = v Then
      t(1) = tablo2(i, 1): t(2) = tablo2(i, 2)
      RECHVAL = t
      Exit Function
    End If
  Next
End If
End Function
Nouvelle formule en G2:H2 à valider matriciellement et tirer vers le bas :
Code:
=RECHVAL($A2;$A$1:$A1;$G$1:$H1)+($E2=$G$1:$H$1)/2^($F2<>"J")
Avec modif sur ligne 2, la durée du calcul se réduit à 4,3 secondes 🙂

Fichier (3).

Edit : testé sous Win 7 - Excel 2010 => 2,7 secondes.

A+
 

Pièces jointes

Dernière édition:
Re : Calculer le cumule ( en VBA)

Re Maitre
je pense que j'ai mal exposé mon souci sur le post#1!!!!!!( je suis vraiment sorry maitre🙁😱)

C'est ton problème, à toi maintenant d'adapter la dernière solution que j'ai fournie.

J'ai édité plusieurs fois mon dernier post, prends bien la bonne fonction et la bonne formule...

A+
 
Re : Calculer le cumule ( en VBA)

Re,

Ah j'oubliais qu'il peut y avoir des homonymes.

Cette fonction teste donc le nom (v1) et le prénom (v2) :

Code:
Option Compare Text 'la casse est ignorée

Function RECHVAL(v1$, v2$, tablo1, tablo2)
'tablo1 => 2 colonne, tablo2 => 2 colonnes
Dim i&, t(1 To 2)
tablo1 = tablo1 'matrice
tablo2 = tablo2 'matrice
For i = UBound(tablo1) To 1 Step -1
  If tablo1(i, 1) = v1 Then
    If tablo1(i, 2) = v2 Then
      t(1) = tablo2(i, 1): t(2) = tablo2(i, 2)
      RECHVAL = t
      Exit Function
    End If
  End If
Next
End Function
Nouvelle formule matricielle sur G2:H2 :

Code:
=RECHVAL($A2;$B2;$A$1:$B1;$G$1:$H1)+($E2=$G$1:$H$1)/2^($F2<>"J")
Fichier (4).

La durée du calcul (modif ligne 2) passe à 7,5 secondes.

Edit : testé sous Win 7 - Excel 2010 => 3,3 secondes.

A+
 

Pièces jointes

Dernière édition:
Re : Calculer le cumule ( en VBA)

Bonsoir Maitre
merci grazie pour les réponses mais dans ce fichier et dans la feuille "FSCP" je ne vois pas des résultats dans les deux dernières colonnes J&K???
A+
 
Re : Calculer le cumule ( en VBA)

Re
ça fonctionne parfaitement mais elle est tres lente pour un tableau de 2013 ligne et pour un USF pour cette raison j'ai souhaité une reponse en VBA.
Merci encore
NB: ou bien convertir cette dernière en VBA😕
Bonjour Legols, Bonjour Maitre, Bonjour Forum
Le Problème de lenteur dans la proposition de Legols ( on utilisant mon USF) est réglé de cette façon
Code:
=SI($B3<>"";RECHVAL($B$3:$B3;$J$3:$K3;COLONNES($J3:J3))+($G3=J$2)/2^($H3<>"La Journée");"")
j'ai ajouté la condition si le nom n'est pas vide
Merci pour tout le monde
NB: réglé en mode formule seulement😱
 
Re : Calculer le cumule ( en VBA)


Bonjour Forum
je vous sollicite a m'aider pour résoudre mon souci suivant :
je souhaiterai cette fois conditionner cette formule par les deux cellule B&D (NOM&PRENOM) et après afficher le cumule .
Code:
=SI($B2<>"";RECHVAL($B$2:$B2;$J$2:$K2;COLONNES($J2:J2))+($G2=J$1)/2^($H2<>"J");0)
GRAZIE
 

Pièces jointes

Re : Calculer le cumule ( en VBA)

Salut à tous!

Voici comment intégrer la colonne D avec :

=SI(ET($B2<>"";$D2<>"");RECHVAL($B$2:$B2;$J$2:$K2;COLONNES($J2:J2))+($G2=J$1)/2^($H2<>"J");0)

Par contre, la colonne D ne représente pas les prénoms mais la fonction.
Si tu t'es trompé dans ta demande, voici la correction à la formule :

=SI(ET($B2<>"";$C2<>"");RECHVAL($B$2:$B2;$J$2:$K2;COLONNES($J2:J2))+($G2=J$1)/2^($H2<>"J");0)
 
Re : Calculer le cumule ( en VBA)

Bonjour SOURCIER
oui c'est une erreur je corrige C et non pas D, merci pour le rappel et pour la réponse
mais mon souci est chercher le meme nom et meme prenom et calculer le cumule parceque dans mon fichier je peux avoir le meme NOM avec différent PRENOM
A+
 
Re : Calculer le cumule ( en VBA)

Bonjour Ilino, sourcier08,

Le problème Ilino c'est que tu n'étudies pas correctement les solutions qu'on te donne 😡

En effet j'ai réglé le problème des homonymes au post #19 (Nom + Prénom).

Ci-joint ton fichier du post #23 dans lequel j'ai placé la bonne macro.

La fonction RECHVAL renvoie une matrice de 2 valeurs.

Donc note bien qu'il faut entrer la formule sur la plage J2:K2 et valider matriciellement.

A+
 

Pièces jointes

Dernière édition:
- 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
10
Affichages
351
Réponses
40
Affichages
1 K
Réponses
25
Affichages
618
Réponses
6
Affichages
537
Réponses
15
Affichages
415
  • Question Question
Microsoft 365 Traitement
Réponses
7
Affichages
131
Réponses
6
Affichages
160
Réponses
12
Affichages
181
Réponses
6
Affichages
214
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…