Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2011, 16h16   #1
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2011
Messages : 26
Points : 10
Points : 10
Par défaut Inventaire n° de téléphone

Bonjour le forum.

Dans le cadre de mon stage, je souhaite créer un annuaire (40 000 lignes sur Excel donc à automatiser).
A partir de plusieurs bases de données, j'ai rapprochés les différentes informations des mêmes clients que l'on pouvait trouver.

Cependant, lorsque l'on retrouve plusieurs numéros de téléphone, je n'arrive pas saisir sur la même ligne, qui regroupe les informations, les 2 numéros de téléphone.

Pourtant ma macro me paraît cohérente mais je n'arrive pas au résultat voulu.
J'aimerais donc bénéficier de votre aide



Pour info, ma macro:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Essai()
 
Dim L As Long, TEL1 As Variant, TEL2 As Variant
 
For L = 2 To 35777
 
 If Cells(L, 3).Value <> Cells(L - 1, 3).Value Then
  TEL1 = ""
  TEL2 = ""
 End If
 
 
 If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" Then
  TEL1 = Cells(L, 16).Value
 ElseIf Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And Cells(L, 16) <> TEL1 Then
  TEL2 = Cells(L, 16).Value
 End If
 
 
 If Cells(L, 2).Value = "HOV" Then
  TEL1 = Cells(L, 15).Value
  TEL2 = Cells(L, 16).Value
 End If
 
 
Next L
 
 
End Sub
Olivm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 16h35   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Impossible de prendre ton fichier

Néanmoins, je ne comprends pas ce que doit faire
Code :
1
2
3
4
5
If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" Then
  TEL1 = Cells(L, 16).Value
 ElseIf Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And Cells(L, 16) <> TEL1 Then
  TEL2 = Cells(L, 16).Value
 End If
En fait je ne comprends pas ce que doit faire tout ce code
Tu dis
Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 16h49   #3
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Essai()
 
Dim L As Long, TEL1 As Variant, TEL2 As Variant
 
For L = 2 To 35777 'pour toutes les lignes du tableau
 
 If Cells(L, 3).Value <> Cells(L - 1, 3).Value Then 'si il s'agit d'un nouveau client (nouveau ensemble de lignes)
  TEL1 = ""   'on remet les variables à 0
  TEL2 = ""
 End If
 
 
 If Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And TEL1 = "" Then 'si on est pas sur une ligne de récap client et qu'il y a un n° de tel, alors...
  TEL1 = Cells(L, 16).Value 'on enregistre dans la variable ce n° de tél
 ElseIf Cells(L, 2).Value <> "HOV" And Cells(L, 16).Value <> "" And Cells(L, 16) <> TEL1 Then 'sinon , si il existe déjà un TEL1 (pour cette ensemble de ligne du même client car les variables n'ont pas été réinitialisées)
  TEL2 = Cells(L, 16).Value 'on enregistre tel2
 End If
 
 
 If Cells(L, 2).Value = "HOV" Then  'sur la ligne HOV récapitulative client
  Cells(L, 15).Value = TEL1 'on inscrit les 2 numéros de tel enregistrés
  Cells(L, 16).Value = TEL2
 End If
 
 
Next L
 
 
End Sub
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/11/2011, 16h59   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Ok Daniel.C

Alors
Citation:
Pourtant ma macro me paraît cohérente mais je n'arrive pas au résultat voulu.


Cordialement
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/11/2011, 17h45   #5
Candidat au titre de Membre du Club
 
Homme
Inscription : mars 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2011
Messages : 26
Points : 10
Points : 10
Merci Daniel, ça marche

Bonne soirée!
Olivm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h12.


 
 
 
 
Partenaires

Hébergement Web