Je vous soumets ce problème que je n'ai pas su autrement décrire que par le fichier Excel que j'ai joint ..
C'est ma première venue sur le forum ..
Merci d'avance pour vos réponses
Patrick
Version imprimable
Je vous soumets ce problème que je n'ai pas su autrement décrire que par le fichier Excel que j'ai joint ..
C'est ma première venue sur le forum ..
Merci d'avance pour vos réponses
Patrick
Bonjour,
Il faut que tu assignes une valeur à "Ws" :
par exemple. Je ne comprends pas ce que tu veux faire. Tu boucles sur les cellules d'une plage, mais tu ne fais nulle part référence à ces cellules.Code:Set Ws = Sheets("Forum")
Salut Patrick
Je pense que ceci doit te convenir
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub CommandButton1_Click() nlignebd = Range("D65535").End(xlUp).Row nlignels = Range("G65535").End(xlUp).Row For j = 9 To nlignels For i = 9 To nlignebd nlignebdmax = Range("A65535").End(xlUp).Offset(1, 0).Row If Range("D" & i).Value = Range("G" & j).Value Then If Range("D" & i).Offset(0, 1).Value >= Range("G" & j).Offset(0, 1).Value Then Range("A" & nlignebdmax).Value = Range("D" & i).Value Range("A" & nlignebdmax).Offset(0, 1).Value = Range("D" & i).Offset(0, 1).Value End If End If Next i Next j End Sub
Bonjour Daniel,
tout d'abord merci de ta réponse.
Tu as raison je n'avais pas valorisé Ws.
Mais ça ne marche pas quand même !! :(
Est ce que je dois prendre des références absolues ou relatives ?
Est ce que j'ai fait le bon choix de boucle ?
Je découvre VBA ...!
Je vais essayer de reformuler ce que je veux faire :
étape 1 : je copie l'id dans la liste "Liste des singletons"
étape 2 : je colle cette valeur dans la cellule A9 "id de la fonction BDMAX"
étape 3 : je copie la valeur calculée bdmax
étape 4 : je colle la valeur bdmax dans la colonne delta Max en face de l'id
étape 5 : je fais ça pour chaque id de la liste "Liste des singletons"
Est-ce que la réponse de mentat te convient ? si non, mets un classeur en pièce jointe.
Bonjour Mentat,
Merci à toi aussi de ta réponse mais j'ai essayé et ça n'a rien fait ...?
Pour répondre à Daniel j'avais joint un classeur Excel à mon premier message
qui s'appelle Forum.xls
Je recommence ici
As tu bien tester avec un bouton? ou renommer le sub ?
Je l'ai pourtant tester il me semble fonctionner...? :?
Voici ton fichier avec le code et un bouton
Essaie, à condition que la formule :
soit en B9 :Code:=BDMAX(D8:E24;E8;A8:A9)
Code:
1
2
3
4
5
6
7
8
9 Sub test() Dim c As Range With Sheets("Forum") For Each c In .Range(.[G9], .[G9].End(xlDown)) .[A9] = c.Value c.Offset(, 1).Value = .[B9] Next c End With End Sub
Merci Daniel c'est exactement ça ..
Le code est simple il me reste à finir de le comprendre.
Pour une première fois ça fait plaisir la solidarité !!!
A charge de revanche !;)
Bonjour Mentat ..
En fait le bouton fonctionne bien mais ne retourne pas le max pour chacun des singletons ..
En tout cas un grand merci pour votre aide toi et Daniel.. vous m'enlevez une écharde du pied je vais pouvoir continuer !
Patrick
Je ne sais pas... je recopie bien les id et la valeur des singletons dépassant la valeur max dans la colone A et B...
Ou alors j'ai rien compris à ce que tu voulais faire... :mouarf:
Le principal est que tu es ta solution et que tu l'es comprise...
Bon courage pour la suite.