OVH Cloud OVH Cloud

Possible sans macro ???

13 réponses
Avatar
peneloppe
Bjr
voilà mon problème

je dois faire le calcul annuel des appels telephoniques en interne

j'ai donc une colonne avec les villes , une autre avec les n°
appelants et une autre avec les n° appelés

On retrouve bien evidemment dans la colonne appelés certains n°
appelants (principa de l'appel interne )

Ma question est comment isoler, si possible sans macro, ces appels
internes ??

si pas possible sans macro, tant pis je m'y mettrais

merci de vos conseils..

3 réponses

1 2
Avatar
Misange
Salut,

Avec un un sommeprod, cela risque d'être extrement long a calculer,
surtout sur les 445 171 lignes.....
tu as parfaitement raison ! mais comme la demandeuse semblait préférer

une solution sans macro... sans macro toujours reste la solution du
filtre personnalisé avec extraction des données sur une autre feuille.

--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Avatar
peneloppe
je confirme ....... pour le temps d'execution du sommeprod.

j'avais donc commencé à écrire la macro
Avatar
Michel Samoey
Bonjour,
une RECHERCHEV est il plus long ?

Par exemple faire une feuille "numsociete" dans laquelle figure en colonne A
la liste trié de tous les numéros appartenant à la société.

Dans la feuille principale
en A n°appelant
en B n°appelé
en C le coût de la com
en D1 =SI(ESTERREUR(RECHERCHEV(B1;numsociete!$A$1:$B$5;1;0));0;1)
en E1 Ñ*C1
tout en bas de la colonne E : =SOMME(E1:E8)

Le petit +, tous les numéros de la société sont pris en compte même ceux qui
n'ont pas appelé.
Cordialement
Michel

"FdeCourt" a écrit dans le message de news:

Salut,

Avec un un sommeprod, cela risque d'être extrement long a calculer,
surtout sur les 445 171 lignes.....

Avec une macro, pour analyser 65535 lignes, dont environ 50% sont des
numéros internes, cela m'a pris 1 minute 41 (attention, je me suis
basé sur 3 colonne uniquement, la macro écrit dans la colonne C).

En faisant la même chose avec SOMMEPROD "=SOMMEPROD(N(B1=$A$1:$A
$65535))", en 1 minute 41, excel a fait le calcul pour 3139 lignes
seulement

Option Base 1

Sub test_doublon()
Dim donnees
Dim resultat()
Dim MaCollection As New Collection
Dim d As Long, i As Long, Lgn As Long

donnees = Range(Cells(1, 1), Cells(Cells(65536, 1).End(xlUp).Row,
2))
Lgn = UBound(donnees, 1)

ReDim resultat(1 To UBound(donnees))

For i = 1 To Lgn
On Error Resume Next
MaCollection.Add Item:=donnees(i, 1), key:=donnees(i, 1)
Next
d = MaCollection.Count + 1
For i = 1 To Lgn
On Error Resume Next
MaCollection.Add Item:=donnees(i, 2), key:=donnees(i, 2)
If Err <> 0 Then
resultat(i) = "Interne"
Else
MaCollection.Remove (d)
End If
Next

Range(Cells(1, 3), Cells(Lgn, 3)) = Application.Transpose(resultat)

End Sub

F.

On 27 mar, 09:55, Misange wrote:
peneloppe a écrit :> D'abord un grand merci pour votre aide

ce que je n'aie pas dit

la taille du fichier : 445 171 lignes et une quinzaine de colonnes
je ne peux rien supprimer : a partir du moment ou je dois calculer le
cout des appels ; si je supprime des doublons , je supprime également
les données associées a cette suppression


Alors ce que je te propose au plus simple et sans macro:
Une fois que tu as ajouté ta colonne C, tu fais ton calcul à l'aide de
sommeprod (voir sur xlwiki dans la rubrique fonction des explications
détaillées sur cette fonction magique et documentée sur un pouillème de
ses capacités seulement dans l'aide d'excel.) Tu peux ainsi combiner de
multiples critères de sélection de tes données.

Autre solution : tu récupères dans ta colonne C des "OK" ou "interne",
tu fais un filtre sur ce terme et tu copies tes données sur une autre
feuille sur laquelle tu fais tes calculs.
De cette façon ta feuille initiale (après suppression du filtre) n'est
pas modifiée, sauf la colonne C que tu peux toujours effacer ensuite.

Sinon encore tu fais ton calcul par macro, en testant pour chaque ligne
si elle répond ou non au critère.

Y'a du choix !

--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel
!http://xlwiki.free.fr/wikihttp://www.excelabo.net



1 2