S'il vous plait besoin d'aide, programme VBA
Résolu/Fermé
A voir également:
- S'il vous plait besoin d'aide, programme VBA
- Programme demarrage windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Fichier ouvert dans un autre programme - Guide
- Erreur 1004 vba ✓ - Forum VB / VBA
2 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
6 sept. 2013 à 11:53
6 sept. 2013 à 11:53
Bonjour
Voici une proposition
En colonne A: les Emails
En colonne B: les montants
En colonne C: les durées
en espérant que cela corresponde à vos attentes
Bonne journée
CDLT
Voici une proposition
En colonne A: les Emails
En colonne B: les montants
En colonne C: les durées
Sub CumulCredit()
Dim DerLig As Long
Dim AdressEmailTeste As String
Dim Email As String
Dim EmailMontant As Long
Dim EmailDuree As Long
Dim AdressOrigine As String
Dim XMontant As Long
Dim XDuree As Long
Application.ScreenUpdating = False
[A2].Select
AdressEmailTeste = ActiveCell.Address
AdressOrigine = ActiveCell.Address
Debut:
RechercheSuivant:
DerLig = Range("A1").End(xlDown).Row
AdressEmailTeste = ActiveCell.Address
Email = ActiveCell.Value
If Email = "" Then Exit Sub
EmailMontant = ActiveCell.Offset(0, 1).Value
EmailDuree = ActiveCell.Offset(0, 2).Value
With Range("A" & ActiveCell.Row & ":A" & DerLig)
Set X = .Find(Email, LookIn:=xlValues)
If Not X Is Nothing Then
X.Select
If X.Address = Range(AdressEmailTeste).Address Then GoTo Origine
XMontant = X.Offset(0, 1).Value
XDuree = X.Offset(0, 2).Value
If XDuree > EmailDuree Then
X.Offset(0, 1).Value = XMontant + EmailMontant
Range(AdressEmailTeste).Select
Selection.EntireRow.Delete
Range(AdressOrigine).Select
GoTo Debut
Else
Range(AdressEmailTeste).Select
ActiveCell.Offset(0, 1).Value = EmailMontant + XMontant
Range(X.Address).EntireRow.Delete
GoTo Debut
End If
Else
EmailSuivant:
End If
End With
Origine:
DerLig = Range("A1").End(xlDown).Row
ActiveCell.Offset(1, 0).Select
AdressOrigine = ActiveCell.Address
GoTo Debut
End Sub
en espérant que cela corresponde à vos attentes
Bonne journée
CDLT