Microsoft 365 Ré-Affectations des lignes d'appels

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous 🙂
J'espère que vous allez bien et que vous pouvez profiter du dé-confinement,

Je voudrais automatiser des actions et je n'y arrive pas !
Voici mon petit exposé :
Ré-Affectations des lignes d'appels
Pour prospecter, nos clients nous donnent leur secteur à prospecter ( noms des communes - ciblage biens et fourchettes valeurs)
Pour diverses raisons il arrive qu'un client ne souhaite plus que nous prospections pour lui.
Nous arrêtons donc sa prospection.

Dans notre fichier de travail (feuille "SuivisAppels"), nous avons toutes les lignes des Vendeurs déjà appelés et "A Rappeler" en cours.

Pour voir s'il est possible de ne pas perdre nos appels (c'est bcp de temps et d'argent),

Je vérifie alors, si le secteur du client qui vient de stopper sa prospection, correspond au secteur d'un autre client.

Si c'est le cas, il me faut faire les actions suivantes :
1 - remplacer le N° client (col J) sur toutes les lignes du client qui a stoppé pour mettre le N° du client de remplacement,
2 - remplacer le nom (col M) sur toutes les lignes du client qui a stoppé pour mettre le nom du client de remplacement,
3 - signaler dans les commentaires (col S) la modification d'affectation client avec la date,
par exemple : "21/05/2020 - du client 155 réaffecté"

C'est un peu long à faire et j'aimerais automatiser ces 3 actions pour gagner du temps.
l'idée de procédure : Certainement une boucle ?
En partant du principe que les lignes sont préalablement triées par N° clients sur col J
Mais c'est compliqué pour moi et je n'y arrive pas !😡

Si vous voulez bien m'aider, Pour le test (fichier test joint) :
Dans la feuille "SuivisAppels"
On pourrait remplacer le N° 155 par le N° 204
Résultat, le 204 aurait alors 20 lignes "d'appels" affectées

Un grand merci pas avance,
Amicalement,
lionel,
 

Pièces jointes

Dernière édition:
Solution
Bonjour Lionel,

Avec un tableau VBA c'est plus rapide :
VB:
Sub Remplacer()
Dim AncienNumero&, NouveauNumero&, NouveauClient As Variant, tablo, i&
AncienNumero = 155 'à adapter
NouveauNumero = 204 'à adapter
With Sheets("SuivisAppels")
    If .FilterMode Then .ShowAllData 'si la feuille est triée
    With .Range("J7:S" & .Range("J" & .Rows.Count).End(xlUp).Row)
        If .Row < 7 Then Exit Sub
        NouveauClient = Application.VLookup(NouveauNumero, .Columns, 4, 0)
        If IsError(NouveauClient) Then MsgBox "'" & NouveauNumero & "' introuvable !": Exit Sub
        tablo = .Value 'matrice, plus rapide
        For i = 1 To UBound(tablo)
            If tablo(i, 1) = AncienNumero Then
                tablo(i, 1) = NouveauNumero...
Bonjour Lionel,

Avec un tableau VBA c'est plus rapide :
VB:
Sub Remplacer()
Dim AncienNumero&, NouveauNumero&, NouveauClient As Variant, tablo, i&
AncienNumero = 155 'à adapter
NouveauNumero = 204 'à adapter
With Sheets("SuivisAppels")
    If .FilterMode Then .ShowAllData 'si la feuille est triée
    With .Range("J7:S" & .Range("J" & .Rows.Count).End(xlUp).Row)
        If .Row < 7 Then Exit Sub
        NouveauClient = Application.VLookup(NouveauNumero, .Columns, 4, 0)
        If IsError(NouveauClient) Then MsgBox "'" & NouveauNumero & "' introuvable !": Exit Sub
        tablo = .Value 'matrice, plus rapide
        For i = 1 To UBound(tablo)
            If tablo(i, 1) = AncienNumero Then
                tablo(i, 1) = NouveauNumero
                tablo(i, 4) = NouveauClient
                tablo(i, 10) = tablo(i, 10) & " - " & Date & " - du client " & AncienNumero & " réaffecté"
            End If
        Next
        .Value = tablo 'restitution
    End With
End With
End Sub
A+
 
Re-Bonjour,

ça fonctionne nickel mais je cherche à ne pas être obligé de modifier le code à chaque changement de N°

Pour imputer une valeur saisie à une cellule, j'ai trouvé (pas trop dur lol) :
VB:
Sub saisie_nom()
  Nom = InputBox("Votre nom?", "Votre nom")
  ActiveCell.Value = Nom
End Sub

Mais je ne sais pas à faire en sorte que le code en tienne compte
Je pourrais saisir :
- le N° à remplacer dans le 1er InputBox,
- le N° de remplacement dans le 2eme InputBox
le code s'exécute.
Ce serait super pratique 🙂

Je continue à chercher ...
lionel,
 

Pièces jointes

J'ai fini par trouver et c'était pas trop difficile lol
VB:
Sub Remplacer()
Dim AncienNumero&, NouveauNumero&, NouveauClient As Variant, tablo, i&

AncienNumero = InputBox("Votre nom?", "Votre nom")  '[m2] ' 155 'à adapter
NouveauNumero = InputBox("Votre nom?", "Votre nom") '[m3] ' 204 'à adapter
With Sheets("SuivisAppels")
    If .FilterMode Then .ShowAllData 'si la feuille est triée
    With .Range("J7:S" & .Range("J" & .Rows.Count).End(xlUp).Row)
        If .Row < 7 Then Exit Sub
        NouveauClient = Application.VLookup(NouveauNumero, .Columns, 4, 0)
        If IsError(NouveauClient) Then msgbox "'" & NouveauNumero & "' introuvable !": Exit Sub
        tablo = .Value 'matrice, plus rapide
        For i = 1 To UBound(tablo)
            If tablo(i, 1) = AncienNumero Then
                tablo(i, 1) = NouveauNumero
                tablo(i, 4) = NouveauClient
                tablo(i, 10) = tablo(i, 10) & " - " & Date & " - du client " & AncienNumero & " réaffecté"
            End If
        Next
        .Value = tablo 'restitution
    End With
End With
End Sub

Bonne fin de journée,
lionel,
 
Bonjour Gérard, Bonjour à toutes et à tous,
Je vous souhaite une belle journée 🙂

Je reviens un p'tit coup sur le sujet :
Le code de Gérard fonctionne super bien et l'InputBox est très pratique.

Toutefois, je me suis dit que ce serait encore mieux , si au lieu d'avoir 2 "InputBox" qui s'affichent l'un après l'autre, d'en avoir uniquement 1 dans lequel on saisi les 2 valeurs :
par exemple :
Sans titre.jpg

J'ai tenté et fait des recherches sans succès,
Auriez-vous le bon code ?
Je remets le fichier test en cas 🙂
Je continue mes recherches ...
Avec mes remerciements,
lionel,
 

Pièces jointes

- 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

Discussions similaires

Retour