J'aimerais cependant =E9crire dans la colonne E le nom des=20
compagnies correspondant au montant nouvellement =E9crit=20
dans la colonne F. Le nom de ces compagnies est =E9crit dans=20
la colonne B.=20
Je crois qu'il faudrait d'abord trouver le montant=20
correspondant =E0 la cellule F2 dans le colonne D, et =E9crire=20
le nom de la compagnie correspondant de la colonne B dans=20
la cellule E2.=20
Seulement, j'ai pas id=E9e comment =E9crire cela...
J'aimerais cependant écrire dans la colonne E le nom des compagnies correspondant au montant nouvellement écrit dans la colonne F. Le nom de ces compagnies est écrit dans la colonne B.
Je crois qu'il faudrait d'abord trouver le montant correspondant à la cellule F2 dans le colonne D, et écrire le nom de la compagnie correspondant de la colonne B dans la cellule E2.
Seulement, j'ai pas idée comment écrire cela...
Pourriez-vous m'aider ?
Merci
Denys
Bonjour Denys,
Insère entre chacune de tes lignes de formules ceci :
J'aimerais cependant écrire dans la colonne E le nom des
compagnies correspondant au montant nouvellement écrit
dans la colonne F. Le nom de ces compagnies est écrit dans
la colonne B.
Je crois qu'il faudrait d'abord trouver le montant
correspondant à la cellule F2 dans le colonne D, et écrire
le nom de la compagnie correspondant de la colonne B dans
la cellule E2.
J'aimerais cependant écrire dans la colonne E le nom des compagnies correspondant au montant nouvellement écrit dans la colonne F. Le nom de ces compagnies est écrit dans la colonne B.
Je crois qu'il faudrait d'abord trouver le montant correspondant à la cellule F2 dans le colonne D, et écrire le nom de la compagnie correspondant de la colonne B dans la cellule E2.
Seulement, j'ai pas idée comment écrire cela...
Pourriez-vous m'aider ?
Merci
Denys
Daniel.M
Denys,
As-tu des doublons? Est-il possible que 2 compagnies partagent la même valeur?
Salutations,
Daniel M.
Denys,
As-tu des doublons?
Est-il possible que 2 compagnies partagent la même valeur?
la collusion des prix c'est seulement les pétrolières qui savent faire cela !
;-))
Salutations!
"Daniel.M" a écrit dans le message de news:% Denys,
As-tu des doublons? Est-il possible que 2 compagnies partagent la même valeur?
Salutations,
Daniel M.
Denys
Bonjour Denis et Daniel,
D'abord Denis, merci infiniment, cela fonctionne à merveille. Tu m'as encore sauvé beaucoup de temps.
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
Sub Macro7() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("B65536").End (xlUp).Row) If IsNumeric(C) Then Total = Total + C Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les ' entrées excédentaires. With Cells(PremLigne, PremCol + 2).Resize(Ligne - 1, 1) '3e col de l'output .FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[- 2],CIEEXCLURE,0)))" .Value = .Value ' on tri, avec clé1 la 3e col, clé2 la 2e col Cells(PremLigne, PremCol).Resize(Ligne - 1, 3).Sort _ Key1:Îlls(PremLigne, PremCol + 2), Order1:=xlDescending, _ Key2:Îlls(PremLigne, PremCol + 1), Order2:=xlDescending .ClearContents ' on détruit la 3e colonne de l'output End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS ' donc éliminer les entrées en-dessous With Cells(PremLigne + 5, PremCol) Range(.Cells, .End(xlDown)(1, 2)).ClearContents End With
End Sub
Si je fais un "Copy & Paste" de ce que j'ai .cris sur le forum, j'obtiens ceci comme résultat:
PQR et $3.23 dans la même cellule, soit F2 et 191.27 dans la cellule G2. Les montants que tu obtenais pour ta part étaient les bons car ils comprenaient le total des deux. Sauf que je n'ai encore réussi à les obtenir.
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Voilà....
Merci infiniment à vous deux...Et bon début de semaine
Denys
Bonjour Denis et Daniel,
D'abord Denis, merci infiniment, cela fonctionne à
merveille. Tu m'as encore sauvé beaucoup de temps.
Daniel, je fais référence à la macro que tu me proposais
vendredi dernier et avec lequel tes résultats différaient
de ceux d'Isabelle. Voici ta macro:
Sub Macro7()
Dim C As Range, Total As Double
Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("B65536").End
(xlUp).Row)
If IsNumeric(C) Then
Total = Total + C
Else
Cells(Ligne, PremCol) = C
If Ligne > PremLigne Then
Cells(Ligne - 1, PremCol + 1) = Total
End If
Total = C(1, 2)
Ligne = Ligne + 1
End If
Next C
Cells(Ligne - 1, PremCol + 1) = Total 'inscrit
le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever
les
' entrées excédentaires.
With Cells(PremLigne, PremCol + 2).Resize(Ligne - 1,
1) '3e col de l'output
.FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[-
2],CIEEXCLURE,0)))"
.Value = .Value
' on tri, avec clé1 la 3e col, clé2 la 2e col
Cells(PremLigne, PremCol).Resize(Ligne - 1,
3).Sort _
Key1:=Cells(PremLigne, PremCol + 2),
Order1:=xlDescending, _
Key2:=Cells(PremLigne, PremCol + 1),
Order2:=xlDescending
.ClearContents ' on détruit la 3e colonne
de l'output
End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3
PROCHAINS
' donc éliminer les entrées en-dessous
With Cells(PremLigne + 5, PremCol)
Range(.Cells, .End(xlDown)(1, 2)).ClearContents
End With
End Sub
Si je fais un "Copy & Paste" de ce que j'ai .cris sur le
forum, j'obtiens ceci comme résultat:
PQR et $3.23 dans la même cellule, soit F2 et 191.27 dans
la cellule G2. Les montants que tu obtenais pour ta part
étaient les bons car ils comprenaient le total des deux.
Sauf que je n'ai encore réussi à les obtenir.
En réalité, les Noms des compagnies n'apparaissent qu'en
colonne B alors que les prix sont en colonne C.
Voilà....
Merci infiniment à vous deux...Et bon début de semaine
D'abord Denis, merci infiniment, cela fonctionne à merveille. Tu m'as encore sauvé beaucoup de temps.
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
Sub Macro7() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("B65536").End (xlUp).Row) If IsNumeric(C) Then Total = Total + C Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les ' entrées excédentaires. With Cells(PremLigne, PremCol + 2).Resize(Ligne - 1, 1) '3e col de l'output .FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[- 2],CIEEXCLURE,0)))" .Value = .Value ' on tri, avec clé1 la 3e col, clé2 la 2e col Cells(PremLigne, PremCol).Resize(Ligne - 1, 3).Sort _ Key1:Îlls(PremLigne, PremCol + 2), Order1:=xlDescending, _ Key2:Îlls(PremLigne, PremCol + 1), Order2:=xlDescending .ClearContents ' on détruit la 3e colonne de l'output End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS ' donc éliminer les entrées en-dessous With Cells(PremLigne + 5, PremCol) Range(.Cells, .End(xlDown)(1, 2)).ClearContents End With
End Sub
Si je fais un "Copy & Paste" de ce que j'ai .cris sur le forum, j'obtiens ceci comme résultat:
PQR et $3.23 dans la même cellule, soit F2 et 191.27 dans la cellule G2. Les montants que tu obtenais pour ta part étaient les bons car ils comprenaient le total des deux. Sauf que je n'ai encore réussi à les obtenir.
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Voilà....
Merci infiniment à vous deux...Et bon début de semaine
Denys
Daniel.M
Salut,
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des données : ce qui explique mes résultats différents. Je croyais que les nombres étaient en col B (sauf lorsqu'il y avait le nom de la cie, alors ils étaient en col C).
Avec une structuration comme celle-ci: ColB ColC ABC $5.00 $5.10 $5.20 $5.30 $5.40 $5.50 DEF $12.32 $13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total ' doivent être présentes dans une plage CIEEXCLURE ' (pour les données du problème: ce serait une plage de ' 2 cellules contenant ABC et GHI
Sub Macro_DMA() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End(xlUp).Row) If IsEmpty(Trim(C)) Then Total = Total + C(1, 2) Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les entrées ' excédentaires. With Cells(PremLigne, PremCol + 2).Resize(Ligne - PremLigne, 1) '3e colonne de l'output .FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[-2],CIEEXCLURE,0)))" .Value = .Value ' on tri, avec clé1 la 3e col, clé2 la 2e col Cells(PremLigne, PremCol).Resize(Ligne - PremLigne, 3).Sort _ Key1:Îlls(PremLigne, PremCol + 2), Order1:=xlDescending, _ Key2:Îlls(PremLigne, PremCol + 1), Order2:=xlDescending .ClearContents ' on détruit la 3e colonne de l'output End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS ' donc éliminer les entrées en-dessous With Cells(PremLigne + 5, PremCol) Range(.Cells, .End(xlDown)(1, 2)).ClearContents End With
End Sub
Salutations,
Daniel M.
Salut,
Daniel, je fais référence à la macro que tu me proposais
vendredi dernier et avec lequel tes résultats différaient
de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en
colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des données : ce qui explique mes
résultats différents. Je croyais que les nombres étaient en col B (sauf
lorsqu'il y avait le nom de la cie, alors ils étaient en col C).
Avec une structuration comme celle-ci:
ColB ColC
ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total
' doivent être présentes dans une plage CIEEXCLURE
' (pour les données du problème: ce serait une plage de
' 2 cellules contenant ABC et GHI
Sub Macro_DMA()
Dim C As Range, Total As Double
Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End(xlUp).Row)
If IsEmpty(Trim(C)) Then
Total = Total + C(1, 2)
Else
Cells(Ligne, PremCol) = C
If Ligne > PremLigne Then
Cells(Ligne - 1, PremCol + 1) = Total
End If
Total = C(1, 2)
Ligne = Ligne + 1
End If
Next C
Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les entrées
' excédentaires.
With Cells(PremLigne, PremCol + 2).Resize(Ligne - PremLigne, 1) '3e
colonne de l'output
.FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[-2],CIEEXCLURE,0)))"
.Value = .Value
' on tri, avec clé1 la 3e col, clé2 la 2e col
Cells(PremLigne, PremCol).Resize(Ligne - PremLigne, 3).Sort _
Key1:Îlls(PremLigne, PremCol + 2), Order1:=xlDescending, _
Key2:Îlls(PremLigne, PremCol + 1), Order2:=xlDescending
.ClearContents ' on détruit la 3e colonne de l'output
End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS
' donc éliminer les entrées en-dessous
With Cells(PremLigne + 5, PremCol)
Range(.Cells, .End(xlDown)(1, 2)).ClearContents
End With
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des données : ce qui explique mes résultats différents. Je croyais que les nombres étaient en col B (sauf lorsqu'il y avait le nom de la cie, alors ils étaient en col C).
Avec une structuration comme celle-ci: ColB ColC ABC $5.00 $5.10 $5.20 $5.30 $5.40 $5.50 DEF $12.32 $13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total ' doivent être présentes dans une plage CIEEXCLURE ' (pour les données du problème: ce serait une plage de ' 2 cellules contenant ABC et GHI
Sub Macro_DMA() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End(xlUp).Row) If IsEmpty(Trim(C)) Then Total = Total + C(1, 2) Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les entrées ' excédentaires. With Cells(PremLigne, PremCol + 2).Resize(Ligne - PremLigne, 1) '3e colonne de l'output .FormulaR1C1 = "=N(ISNUMBER(MATCH(RC[-2],CIEEXCLURE,0)))" .Value = .Value ' on tri, avec clé1 la 3e col, clé2 la 2e col Cells(PremLigne, PremCol).Resize(Ligne - PremLigne, 3).Sort _ Key1:Îlls(PremLigne, PremCol + 2), Order1:=xlDescending, _ Key2:Îlls(PremLigne, PremCol + 1), Order2:=xlDescending .ClearContents ' on détruit la 3e colonne de l'output End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS ' donc éliminer les entrées en-dessous With Cells(PremLigne + 5, PremCol) Range(.Cells, .End(xlDown)(1, 2)).ClearContents End With
End Sub
Salutations,
Daniel M.
Denys
Bonjour Daniel,
Merci, j'ai essayé le code sur la filière "véritable". Cela semble fonctionner, sauf que je crois que je devrai d'abord éliminer les lignes vides. D'après les résultats, je crois que c'est là ou le code s'arrete...
Je vérifie et te reviens là-dessus.
Merci beaucoup pour ton temps...
Bonne semaine
Denys
-----Original Message----- Salut,
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des données : ce qui explique mes
résultats différents. Je croyais que les nombres étaient en col B (sauf
lorsqu'il y avait le nom de la cie, alors ils étaient en col C).
Avec une structuration comme celle-ci: ColB ColC ABC $5.00 $5.10 $5.20 $5.30 $5.40 $5.50 DEF $12.32 $13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total ' doivent être présentes dans une plage CIEEXCLURE ' (pour les données du problème: ce serait une plage de ' 2 cellules contenant ABC et GHI
Sub Macro_DMA() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End (xlUp).Row)
If IsEmpty(Trim(C)) Then Total = Total + C(1, 2) Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les entrées
.ClearContents ' on détruit la 3e colonne de l'output
End With
' prendre les 5 premiers : i.e. 2 (de CIEEXCLURE) + 3 PROCHAINS
' donc éliminer les entrées en-dessous With Cells(PremLigne + 5, PremCol) Range(.Cells, .End(xlDown)(1, 2)).ClearContents End With
End Sub
Salutations,
Daniel M.
.
Bonjour Daniel,
Merci, j'ai essayé le code sur la filière "véritable".
Cela semble fonctionner, sauf que je crois que je devrai
d'abord éliminer les lignes vides. D'après les résultats,
je crois que c'est là ou le code s'arrete...
Je vérifie et te reviens là-dessus.
Merci beaucoup pour ton temps...
Bonne semaine
Denys
-----Original Message-----
Salut,
Daniel, je fais référence à la macro que tu me proposais
vendredi dernier et avec lequel tes résultats différaient
de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en
colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des
données : ce qui explique mes
résultats différents. Je croyais que les nombres étaient
en col B (sauf
lorsqu'il y avait le nom de la cie, alors ils étaient en
col C).
Avec une structuration comme celle-ci:
ColB ColC
ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total
' doivent être présentes dans une plage CIEEXCLURE
' (pour les données du problème: ce serait une plage de
' 2 cellules contenant ABC et GHI
Sub Macro_DMA()
Dim C As Range, Total As Double
Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End
(xlUp).Row)
If IsEmpty(Trim(C)) Then
Total = Total + C(1, 2)
Else
Cells(Ligne, PremCol) = C
If Ligne > PremLigne Then
Cells(Ligne - 1, PremCol + 1) = Total
End If
Total = C(1, 2)
Ligne = Ligne + 1
End If
Next C
Cells(Ligne - 1, PremCol + 1) =
Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis
enlever les entrées
Merci, j'ai essayé le code sur la filière "véritable". Cela semble fonctionner, sauf que je crois que je devrai d'abord éliminer les lignes vides. D'après les résultats, je crois que c'est là ou le code s'arrete...
Je vérifie et te reviens là-dessus.
Merci beaucoup pour ton temps...
Bonne semaine
Denys
-----Original Message----- Salut,
Daniel, je fais référence à la macro que tu me proposais vendredi dernier et avec lequel tes résultats différaient de ceux d'Isabelle. Voici ta macro:
<snip...>
En réalité, les Noms des compagnies n'apparaissent qu'en colonne B alors que les prix sont en colonne C.
Ah! J'avais donc mal compris ta structuration des données : ce qui explique mes
résultats différents. Je croyais que les nombres étaient en col B (sauf
lorsqu'il y avait le nom de la cie, alors ils étaient en col C).
Avec une structuration comme celle-ci: ColB ColC ABC $5.00 $5.10 $5.20 $5.30 $5.40 $5.50 DEF $12.32 $13.25
le code suivant devrait fonctionner:
' Les cies à conserver peu importe leur total ' doivent être présentes dans une plage CIEEXCLURE ' (pour les données du problème: ce serait une plage de ' 2 cellules contenant ABC et GHI
Sub Macro_DMA() Dim C As Range, Total As Double Dim PremCol As Long, PremLigne As Long, Ligne As Long
PremLigne = 2: PremCol = 6: Ligne = PremLigne
For Each C In Range("B2:B" & Range("C65536").End (xlUp).Row)
If IsEmpty(Trim(C)) Then Total = Total + C(1, 2) Else Cells(Ligne, PremCol) = C If Ligne > PremLigne Then Cells(Ligne - 1, PremCol + 1) = Total End If Total = C(1, 2) Ligne = Ligne + 1 End If Next C Cells(Ligne - 1, PremCol + 1) = Total 'inscrit le dernier total
' C'est terminé! : il ne reste qu'à trier puis enlever les entrées