Microsoft 365 Ré-Affectations des lignes d'appels

Usine à gaz

XLDnaute Barbatruc
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 !:mad:

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

  • Forum_réaffectation.xlsm
    162.7 KB · Affichages: 9
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...

job75

XLDnaute Barbatruc
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+
 

Usine à gaz

XLDnaute Barbatruc
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

  • lignAppels_Réaffectation - copie.xlsm
    170 KB · Affichages: 6

Usine à gaz

XLDnaute Barbatruc
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,
 

Usine à gaz

XLDnaute Barbatruc
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

  • lignAppels_Réaffectation.xlsm
    172.1 KB · Affichages: 3

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour :)

J'ai bien trouvé un UserForm qui pourrait convenir mais je n'arrive pas à le lier au code de transfert :mad:
Auriez-vous la solution ? :)
En cas, je remets le fichier avec l'UserForm
Je continue à chercher ...
lionel
 

Pièces jointes

  • lignAppels_Réaffectation2.xlsm
    174.2 KB · Affichages: 3

Discussions similaires

Réponses
13
Affichages
702

Statistiques des forums

Discussions
314 628
Messages
2 111 342
Membres
111 107
dernier inscrit
cdel