• Initiateur de la discussion Initiateur de la discussion olivm
  • 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 !

O

olivm

Guest
Bonjour le forum,

J'ai un fichier ou j'aimerais répertorier les différents numéros de téléhpone de chaque client.

J'ai donc utilisé des macros.

Pour obtenir le premier numéro de telephone, j'ai utiliser cette macro:
Code:
Dim L As Long, TEL1 As Variant
For L = 2 To 35987
   If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL1 = "" Then
     TEL1 = Cells(L, 16).Value
   ElseIf Cells(L, 2).Value = "HOV" Then
   
     Cells(L, 15).Value = TEL1
          TEL1 = ""
        
          End If
   Next L
End Sub


Jusque là tout va bien.

Puis pour obtenir le 2ème n° de téléhphone, j'ai utilisé cette macro:
Code:
Sub Essai()

Dim L As Long, TEL2 As Variant
For L = 2 To 35987
   If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL2 = "" Then
     TEL2 = Cells(L, 16).Value
   ElseIf Cells(L, 2).Value = "HOV" And Cells(L, 15).Value <> TEL2 And Cells(L, 15).Value <> "" Then
   
     Cells(L, 16).Value = TEL2
          TEL2 = ""
          ElseIf Cells(L, 2).Value = "HOV" Then
          TEL2 = ""
          
      End If
   Next L
End Sub
Cependant cette macro ne fonctionne pas parfaitement. (elle fonctionne que si je supprime la ligne 2).

Pouvez-vous m'aider à résoudre ce problème svp? (fichier en pièce jointe).
 

Pièces jointes

Dernière modification par un modérateur:
Re : Aide Macro VBA

bonjour,

je n'ai pas essayé mais je vois ceci:
dans le premier ElseIf Cells(L, 2).Value = "HOVL" Then
.......................................................-----
dans le deuxième ElseIf Cells(L, 2).Value = "HOV" Then
..........................................................---- !?
 
Re : Aide Macro VBA

Oui, petite erreur de ma part mais qui ne corrige pas mon problème. Donc du coup après rectification de la faute de frappe dans le code, cela donne:

Bonjour le forum,

J'ai un fichier ou j'aimerais répertorier les différents numéros de téléhpone de chaque client.

J'ai donc utilisé des macros.

Pour obtenir le premier numéro de telephone, j'ai utiliser cette macro:
Code:
Dim L As Long, TEL1 As Variant
For L = 2 To 35987
   If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL1 = "" Then
     TEL1 = Cells(L, 16).Value
   ElseIf Cells(L, 2).Value = "HOV" Then
   
     Cells(L, 15).Value = TEL1
          TEL1 = ""
        
          End If
   Next L
End Sub


Jusque là tout va bien.

Puis pour obtenir le 2ème n° de téléhphone, j'ai utilisé cette macro:
Code:
Sub Essai()

Dim L As Long, TEL2 As Variant
For L = 2 To 35987
   If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL2 = "" Then
     TEL2 = Cells(L, 16).Value
   ElseIf Cells(L, 2).Value = "HOV" And Cells(L, 15).Value <> TEL2 And Cells(L, 15).Value <> "" Then
   
     Cells(L, 16).Value = TEL2
          TEL2 = ""
          ElseIf Cells(L, 2).Value = "HOV" Then
          TEL2 = ""
          
      End If
   Next L
End Sub
Cependant cette macro ne fonctionne pas parfaitement. (elle fonctionne que si je supprime la ligne 2).

Pouvez-vous m'aider à résoudre ce problème svp? (fichier en pièce jointe).
 
Re : Aide Macro VBA

Je vous envoie à nouveau mon fichier Excel (en incluant la première macro).
Les nombres mis en commentaires sont les résultats attendus.

Je souhaite pouvoir répertorier les différents numéros de téléphone que l'on trouve en colonne dans une ligne récapitulative client.
La difficulté est qu'il est difficile de limiter la plage du client (peux-être à l'aide du n° correspondance sur l'exemple d'un SOMME.SI mais en version VBA).

Code:
Sub essai()
Dim L As Long, TEL1 As Variant
For L = 2 To 35987 'delimitation du tableau
   If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL1 = "" Then  'si la source est différente des HOV et qu'il y a un numéro de téléphone en colonne P et que il n'y a pas encore de numéro de télephone sauvegardé dans la variable TEL1
     TEL1 = Cells(L, 16).Value
   ElseIf Cells(L, 2).Value = "HOV" Then   'si la source est HOV
   
     Cells(L, 15).Value = TEL1   'alors en colonne O on met la variable
          TEL1 = ""  'puis on remet la variable à 0 pour le prochain client
        
          End If
   Next L
End Sub


Aussi, dans un deuxième temps j'aimerais pouvoir faire les même genre de consolidation, cette fois-ci avec les adresses.
 

Pièces jointes

Re : Aide Macro VBA

Merci PierreJean mais je n'arrive pas à appliquer votre macro sur mon fichier de base.



J'ai retenté à nouveau en modifiant ma macro de départ,

svp, pouvez vous télécharger mon fichier joint et me dire pourquoi ma macro ne donne pas le résultat attendu.
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
915
Réponses
4
Affichages
736
Réponses
8
Affichages
394
Réponses
2
Affichages
528
Réponses
5
Affichages
418
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
454
Retour