Aide Macro VBA

olivm

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

  • exceldownloads.xlsx
    11.7 KB · Affichages: 78
  • exceldownloads.xlsx
    11.7 KB · Affichages: 81
  • exceldownloads.xlsx
    11.7 KB · Affichages: 83
Dernière édition:

Roland_M

XLDnaute Barbatruc
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
..........................................................---- !?
 

olivm

XLDnaute Junior
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).
 

olivm

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

  • TEL2macro.xlsm
    17 KB · Affichages: 47
  • TEL2macro.xlsm
    17 KB · Affichages: 52
  • TEL2macro.xlsm
    17 KB · Affichages: 50

olivm

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

  • exceldownloads.xlsm
    18.4 KB · Affichages: 41
  • exceldownloads.xlsm
    18.4 KB · Affichages: 51
  • exceldownloads.xlsm
    18.4 KB · Affichages: 48

pierrejean

XLDnaute Barbatruc
Re : Aide Macro VBA

Re

Cette version devrait fonctionner
Quant a la tienne difficile de se prononcer (a priori le problème que tu poses n'est pas des plus simple !!!)
 

Pièces jointes

  • exceldownloads.xlsm
    26.4 KB · Affichages: 53
  • exceldownloads.xlsm
    26.4 KB · Affichages: 49
  • exceldownloads.xlsm
    26.4 KB · Affichages: 50

Statistiques des forums

Discussions
312 451
Messages
2 088 519
Membres
103 875
dernier inscrit
Farouka