remplacer données feuille A per donnes feuille B

Y

yalefe

Guest
Bonjour,

je recois tous les mois ( professionnellement) des données de communications telephoniques.

sur la feuille A , j'ai toutes les données de communications: le poste appelant, l'heure d'appel, la duree d'appel, le poste appelé ( Col G ), le cout, etc,..
(19476 lignes ce mois ci )

sur la feuille B, j'ai les noms des personnes ainsi que leur n° d'appel

ce que je souhaiterais faire c'est remplacer dans la feuille A tous les n° appelés ( donc tous les N° de la colonne G ) par leurs noms respectifs de la Feuille B

grosso modo, ce que l'on cherche a connaitre c'est le pourcentage en duree et en cout d'appels passés en interne

j'ai demarré la macro mais pour l'instant c'est pas terrible le résultat !!!

un ptit coup de main serait pas de refus

par avance merci beaucoup.
 
Y

yalefe

Guest
voici a quoi ca ressemble
sur la feuille A j'ai ca

A ... ... ... G

1 xxx xxx xxx xxx 0615489745

2 xxx xxx xxx xxx 0610141519

3 xxx xxx xxx xxx 0694959697

.....
.....

et sur la feuille B j'ai ca
A B
1 Mme Gerard 0694959697
2 Mr Martin 0610141519
3 Mr Dupont 0615489745


en fait je cherche a remplacer dans la colonne G de la feuille A
les n° de telephone par les noms correspondants ( colonne A de la
feuille B)
 
C

CBernardT

Guest
Bonjour Valefe

Je pense que cette procédure derait réaliser le remplacement des N° par les Noms des personnes appelées.

Sub Remplacer()
Dim Tbl As Range
Dim MyRange As Range
Dim MyPlage As Range
Dim C As Range, Cbis As Range
'Copie des N° des appelés
Worksheets("A").Range("F2:F20").Copy Worksheets("A").Range("D2")
'Déclaration de variable de la feuille à traiter et du tableau de récapitulation
Set MyRange = Range(Sheets("A").Range("D2"), Sheets("A").Range("D100").End(xlUp))
Set MyPlage = Range(Worksheets("B").Range("C2"), Worksheets("B").Range("C100").End(xlUp))
' Boucle sur les N° de la feuille "A"
For Each C In MyRange
C.Select
'Boucle sur les N° de la feuille "B"
For Each Cbis In MyPlage
If Cbis = C Then ' Recherche du N° équivalent
C = Cbis.Offset(0, -1) ' Remplacement du N° par le Nom
Exit For
End If
Next Cbis
Next C
End Sub

Cordialement

CBernardT
 
C

CBernardT

Guest
Re

Deux choses :

J'ai limité à 100 lignes pour mon essai, mais la plage peu -être allongé jusqu'à 65536 je crois.

Enlever la ligne de code :

C.Select


qui ne sert qu'à vérifier soit la macro :

Sub Remplacer()
Dim Tbl As Range
Dim MyRange As Range
Dim MyPlage As Range
Dim C As Range, Cbis As Range
'Copie des N° des appelés
Worksheets("A").Range("F2:F20").Copy Worksheets("A").Range("D2")
'Déclaration de variable de la feuille à traiter et du tableau de récapitulation
Set MyRange = Range(Sheets("A").Range("D2"), Sheets("A").Range("D65536").End(xlUp))
Set MyPlage = Range(Worksheets("B").Range("C2"), Worksheets("B").Range("C65536").End(xlUp))
' Boucle sur les N° de la feuille "A"
For Each C In MyRange
'Boucle sur les N° de la feuille "B"
For Each Cbis In MyPlage
If Cbis = C Then ' Recherche du N° équivalent
C = Cbis.Offset(0, -1) ' Remplacement du N° par le Nom
Exit For
End If
Next Cbis
Next C
End Sub

Salut

CBernardT
 

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 199
Membres
104 450
dernier inscrit
Miguel937