OVH Cloud OVH Cloud

Traitement de la Donnée

2 réponses
Avatar
phil.aline.naudin
Bonsoir,
Je teste avec la formule "Recherche V", 2 colonnes.
La première colonne à 14172 Cellules de Données alphaNumériques.
La deuxième colonne à 14047 Cellules de Données alphanumériques.

Le but est de trouvé par croisement la donnée qui manque de part et d'autre.

Sauf que :
le Traitement est très très long (Ma bécanne est récente)
Si jamais j'ai le malheur de toucher pendant le traitement une cellule, le
calcul repart

Ma question est simple, avez-vous un truc qui me permettrait de gagner du
temps sur le traitement ?

Merci d'avance.

2 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Tu ne donnes aucun ordre de grandeur de la longueur de ton traitement. Il
m'étonnerait qu'une macro aille plus vite qu'une formule mais à titre indicatif
celle-ci, qui travaille avec des tableaux, met autour de 3 minutes à parcourir
28000 cellules pour trouver les données de A qui sont absentes de B et
inversement (c'est ce que j'ai compris de ce que tu cherches à faire). Par
contre, pas de problème de recalculs intempestifs..

'===============Úns un module standard
'du classeur concerné
Sub test()
Dim p1, p2, i&, j&, S1$, S2$

p1 = Range("A1:A14172").Value2
p2 = Range("B1:B14047").Value2

S1 = "Valeurs de la colonne A absentes de la colonne B :" & vbLf
For i = LBound(p1, 1) To UBound(p1, 1)
If IsError(Application.Match(p1(i, 1), p2, 0)) Then
S1 = S1 & p1(i, 1) & vbLf
End If
Next i
S1 = S1 & vbLf
S2 = "Valeurs de la colonne B absentes de la colonne A :" & vbLf
For j = LBound(p2, 1) To UBound(p2, 1)
If IsError(Application.Match(p2(j, 1), p1, 0)) Then
S2 = S2 & p2(j, 1) & vbLf
End If
Next j

End Sub
'======================================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir,
Je teste avec la formule "Recherche V", 2 colonnes.
La première colonne à 14172 Cellules de Données alphaNumériques.
La deuxième colonne à 14047 Cellules de Données alphanumériques.

Le but est de trouvé par croisement la donnée qui manque de part et d'autre.

Sauf que :
le Traitement est très très long (Ma bécanne est récente)
Si jamais j'ai le malheur de toucher pendant le traitement une cellule, le
calcul repart

Ma question est simple, avez-vous un truc qui me permettrait de gagner du
temps sur le traitement ?

Merci d'avance.


Avatar
phil.aline.naudin
Merci pour ta réponse,
Le traitement dépasse les 5 minutes, et tu as bien compris ma recherche.
Mon deuxième souci arrive si je touche une cellule par mégarde même si elle
n'est pas concernée par la recherhce !!!
Par contre, mais je comprends la raison, si je modifie une cellule qui elle
fait partie de la recherche, le calcul reprend depuis le début.

Encore Merci




"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Tu ne donnes aucun ordre de grandeur de la longueur de ton traitement. Il
m'étonnerait qu'une macro aille plus vite qu'une formule mais à titre
indicatif

celle-ci, qui travaille avec des tableaux, met autour de 3 minutes à
parcourir

28000 cellules pour trouver les données de A qui sont absentes de B et
inversement (c'est ce que j'ai compris de ce que tu cherches à faire). Par
contre, pas de problème de recalculs intempestifs..

'===============Úns un module standard
'du classeur concerné
Sub test()
Dim p1, p2, i&, j&, S1$, S2$

p1 = Range("A1:A14172").Value2
p2 = Range("B1:B14047").Value2

S1 = "Valeurs de la colonne A absentes de la colonne B :" & vbLf
For i = LBound(p1, 1) To UBound(p1, 1)
If IsError(Application.Match(p1(i, 1), p2, 0)) Then
S1 = S1 & p1(i, 1) & vbLf
End If
Next i
S1 = S1 & vbLf
S2 = "Valeurs de la colonne B absentes de la colonne A :" & vbLf
For j = LBound(p2, 1) To UBound(p2, 1)
If IsError(Application.Match(p2(j, 1), p1, 0)) Then
S2 = S2 & p2(j, 1) & vbLf
End If
Next j

End Sub
'====================================== >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonsoir,
Je teste avec la formule "Recherche V", 2 colonnes.
La première colonne à 14172 Cellules de Données alphaNumériques.
La deuxième colonne à 14047 Cellules de Données alphanumériques.

Le but est de trouvé par croisement la donnée qui manque de part et
d'autre.



Sauf que :
le Traitement est très très long (Ma bécanne est récente)
Si jamais j'ai le malheur de toucher pendant le traitement une cellule,
le


calcul repart

Ma question est simple, avez-vous un truc qui me permettrait de gagner
du


temps sur le traitement ?

Merci d'avance.