A voir également:
- Copie cellules ds ligne rep. à une condition
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Aller à la ligne dans une cellule excel - Guide
- Copie cachée - Guide
- Copiez la ligne indiquant aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
- Apparaitre hors ligne whatsapp - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
8 sept. 2010 à 10:10
8 sept. 2010 à 10:10
Bonjour,
1- Evite les .Select, tout le monde te le dira.
peut être remplacé par :
Exemple dans ton code :
A remplacer par :
2-
2a) Qu'est ce que "e"? Pas définit au préalable
Ta cellule A.Cells(iA, 1) aura de toutes façons la valeur de "e"... Est ce que tu veux vraiment.
Vois déjà cela et si ça ne fonctionne toujours pas revient.
1- Evite les .Select, tout le monde te le dira.
Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveCell.Paste
peut être remplacé par :
Range("A1").Copy Range("B1")
Exemple dans ton code :
Cells(iD, 13).Value.Select Selection.Copy A.Cells(iA, 1).Paste
A remplacer par :
Cells(iD, 13).Copy A.Cells(iA, 1)
2-
A.Cells(iA, 1).Paste A.Cells(iA, 1).Value = e
2a) Qu'est ce que "e"? Pas définit au préalable
Ta cellule A.Cells(iA, 1) aura de toutes façons la valeur de "e"... Est ce que tu veux vraiment.
Vois déjà cela et si ça ne fonctionne toujours pas revient.
et bien en fait, c'est ce que j'avais fait avant mais ne sachant plus trop ou ça coinçait, j'ai décomposé les étapes....
pour répondre à l'utilité de la valeur e, elle me sert a enregistrer au fur et à mesure les montants qui sont pris en compte par la condition (puis copiés et collés) afin de pouvoir faire la somme de ces derniers (variable g) pour pouvoir l'afficher dans une cellule d'une autre feuille.
(h compte le nombre de condition qui sont validées)
voici le code:
pour répondre à l'utilité de la valeur e, elle me sert a enregistrer au fur et à mesure les montants qui sont pris en compte par la condition (puis copiés et collés) afin de pouvoir faire la somme de ces derniers (variable g) pour pouvoir l'afficher dans une cellule d'une autre feuille.
(h compte le nombre de condition qui sont validées)
voici le code:
Dim A, D, R As Worksheet
Dim I, J, K, L As Date
Dim g, e, h As Long
Dim iD, iA As Long
Set A = Worksheets("Age Analysis")
Set R = Worksheets("Results")
iA = 1
g = 0
h = 0
I = DateAdd("m", -3, y)
J = DateAdd("m", -6, y)
K = DateAdd("m", -9, y)
L = DateAdd("m", -12, y)
Sheets("Debit").Select
For iD = 2 To 65536
Select Case I & J & K & L
Case ActiveSheet.Cells(iD, 7).Value >= I
ActiveSheet.Range(iD & ";" & 13).Copy A.Cells(iA, 1)
e = A.Cells(iA, 1)
g = g + e 'g permet de stocker la somme
h = h + 1 'compte le nombre d'operations passe entre les dates definies
iA = iA + 1
R.Cells(10, 6).Value = g 'affiche la somme dans la cellule de la feuille Results
R.Cells(10, 5).Value = h 'affiche le nombre de date dans la cellulle de la feuille results
Case I > ActiveSheet.Cells(iD, 7).Value >= J
ActiveSheet.Range(iD & ";" & 13).Copy A.Cells(iA, 1)
e = A.Cells(iA, 1)
g = g + e 'g permet de stocker la somme
h = h + 1 'compte le nombre d'operations passe entre les dates definies
iA = iA + 1
R.Cells(9, 6).Value = g 'affiche la somme dans la cellule de la feuille Results
R.Cells(9, 5).Value = h 'affiche le nombre de date dans la cellulle de la feuille results
Case J > ActiveSheet.Cells(iD, 7).Value >= K
ActiveSheet.Range(iD & ";" & 13).Copy A.Cells(iA, 1)
e = A.Cells(iA, 1)
g = g + e 'g permet de stocker la somme
h = h + 1 'compte le nombre d'operations passe entre les dates definies
iA = iA + 1
R.Cells(8, 6).Value = g 'affiche la somme dans la cellule de la feuille Results
R.Cells(8, 5).Value = h 'affiche le nombre de date dans la cellulle de la feuille results
Case K > ActiveSheet.Cells(iD, 7).Value >= L
ActiveSheet.Range(iD & ";" & 13).Copy A.Cells(iA, 1)
e = A.Cells(iA, 1)
g = g + e 'g permet de stocker la somme
h = h + 1 'compte le nombre d'operations passe entre les dates definies
iA = iA + 1
R.Cells(7, 6).Value = g 'affiche la somme dans la cellule de la feuille Results
R.Cells(7, 5).Value = h 'affiche le nombre de date dans la cellulle de la feuille results
Case ActiveSheet.Cells(iD, 7).Value < L
ActiveSheet.Range(iD & ";" & 13).Copy A.Cells(iA, 1)
e = A.Cells(iA, 1)
g = g + e 'g permet de stocker la somme
h = h + 1 'compte le nombre d'operations passe entre les dates definies
iA = iA + 1
R.Cells(6, 6).Value = g 'affiche la somme dans la cellule de la feuille Results
R.Cells(6, 5).Value = h 'affiche le nombre de date dans la cellulle de la feuille results
End Select
Next