remplacer données feuille A per donnes feuille B

  • Initiateur de la discussion Initiateur de la discussion yalefe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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)
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour