Création BDD en colonnes à partir de fiches en ligne
11 réponses
gorwel2
Bonjour les experts,=20
Je reviens vers vous (et peut-=EAtre Isabelle ?) pour un nouveau cas. C'est=
toujours pour rechercher/d=E9placer automatiquement de nombreuses cellules=
sous forme de "fiches" en ligne pour les avoir sous formes de donn=E9es en=
colonnes. Comme je l'avais vu =E0 cette adresse (http://boisgontierjacques=
.free.fr/pages_site/cellules.htm), =E0 la rubrique "Cr=E9ation d'une BD =E0=
partir de fiches", j'ai vu que =E7a avait l'air faisable mais je n'arrive =
pas =E0 bien l'appliquer =E0 mon format de tableau (voir ci-dessous*).
La difficult=E9 vient du fait que les fiches ne sont pas forc=E9ment compl=
=E8tes ou bien renseign=E9es (le champs "Activit=E9s" peut prendre 2 lignes=
ou plus, voire vide ! tout comme le champs "Rue")... En revanche, les fich=
es sont syst=E9matiquement s=E9par=E9es par une ligne vierge.
Plus parlant, je joins un exemplaire du fichier =E0 cette adresse : http://=
www.cjoint.com/c/FAmokGzKdAa =20
A vos talents, cordialement, Go2.
*EX :=20
Je voudrais les donn=E9es sous cette forme... :=20
A B C D E F G H I
1 Nom Qualif Activit=E9s Rue CP Ville T=E9l Fax E-mail
=20
... et voici une extrait de la longue liste telle qu'elle se pr=E9sente act=
uellement dans une seule colonne : =20
Nom 1
Qualif
Activit=E9
Activit=E91
Activit=E92
Activit=E93
Activit=E94
Rue
CP Ville
T=E9l
Fax
E-mail
Nom 2
Activit=E9
Activit=E91
CP Ville
T=E9l
Fax
Nom 3
Qualif
Activit=E9
Activit=E91
Activit=E92
Activit=E93
Activit=E94
Activit=E95
Activit=E96
Activit=E97
Activit=E98
Rue
CP Ville
T=E9l
Fax
Note : les activit=E9s pourront bien s=FBr =EAtre concat=E9n=E9es et j'ai b=
esoin de s=E9parer le code postal de la ville dans 2 colonnes diff=E9rentes=
(sans traces d'espaces dans le texte si possible...) Pour le t=E9l et le f=
ax, il faut si possible enlever les mentions "T=E9l : " et "Fax : " des num=
=E9ros, mais c'est moins grave, je pourrais les supprimer par lots une fois=
en colonnes)...
Un oubli : il peut y avoir le champs "Site web :" qui apparaît dans la li ste. Je mets à jour le fichier d'exemple ici : http://www.cjoint.com/c/FA mpuQktXna
Le mardi 12 janvier 2016 15:14:42 UTC+1, a écrit :
Bonjour les experts,...
*EX : Je voudrais les données sous cette forme... : A B C D E F G H I J 1 Nom Qualif Activités Rue CP Ville Tél Fax E-mail Site web
... et voici une extrait de la longue liste telle qu'elle se présente a ctuellement dans une seule colonne :
Nom 1 Qualif Activités : Activité1 Activité2 Activité3 Activité4 Rue CP Ville Tél : Fax : E-mail : Site web :
Un oubli : il peut y avoir le champs "Site web :" qui apparaît dans la li ste. Je mets à jour le fichier d'exemple ici : http://www.cjoint.com/c/FA mpuQktXna
Le mardi 12 janvier 2016 15:14:42 UTC+1, gor...@gmail.com a écrit :
Bonjour les experts,...
*EX :
Je voudrais les données sous cette forme... :
A B C D E F G H I J
1 Nom Qualif Activités Rue CP Ville Tél Fax E-mail Site web
... et voici une extrait de la longue liste telle qu'elle se présente a ctuellement dans une seule colonne :
Nom 1
Qualif
Activités :
Activité1
Activité2
Activité3
Activité4
Rue
CP Ville
Tél :
Fax :
E-mail :
Site web :
Un oubli : il peut y avoir le champs "Site web :" qui apparaît dans la li ste. Je mets à jour le fichier d'exemple ici : http://www.cjoint.com/c/FA mpuQktXna
Le mardi 12 janvier 2016 15:14:42 UTC+1, a écrit :
Bonjour les experts,...
*EX : Je voudrais les données sous cette forme... : A B C D E F G H I J 1 Nom Qualif Activités Rue CP Ville Tél Fax E-mail Site web
... et voici une extrait de la longue liste telle qu'elle se présente a ctuellement dans une seule colonne :
Nom 1 Qualif Activités : Activité1 Activité2 Activité3 Activité4 Rue CP Ville Tél : Fax : E-mail : Site web :
Merci beaucoup MichD pour tes efforts... mais y a un hic !
Rassure-toi, c'est de ma faute : en fait, les infos de la colonne B ("Nom", "qualif", "Activités",...) n'existent pas dans mon listing original (je les avais mises effectivement pour repérer plus facilement les données sur le fichier de test). Je constate que la macro fonctionne bien avec les données test mais lorsq ue je teste avec mes fiches (copier-coller en colonne A), il ne se produit rien sans la colonne B (si je la laisse, le résultat est décalé et s' arrête à la 3ème ligne avec un boîte de dialogue mentionnant : "Err eur d'execution '9'...)
J'imagine que tu avais basé la macro sur ces infos de la colonne B, non ?
Je remets un lien vers le fichier débarrassé des infos de la colonne B : http://www.cjoint.com/c/FAoiyzQCAya (j'ai laissé la macro et l'onglet " MichD").
A vous lire, Cordialement, Go2.
Le mercredi 13 janvier 2016 14:36:21 UTC+1, MichD a écrit :
Voir le premier fichier que tu as publié.
http://www.cjoint.com/c/FAnnI0s6wDG
Merci beaucoup MichD pour tes efforts... mais y a un hic !
Rassure-toi, c'est de ma faute : en fait, les infos de la colonne B ("Nom", "qualif", "Activités",...) n'existent pas dans mon listing original (je les avais mises effectivement pour repérer plus facilement les données sur le fichier de test).
Je constate que la macro fonctionne bien avec les données test mais lorsq ue je teste avec mes fiches (copier-coller en colonne A), il ne se produit rien sans la colonne B (si je la laisse, le résultat est décalé et s' arrête à la 3ème ligne avec un boîte de dialogue mentionnant : "Err eur d'execution '9'...)
J'imagine que tu avais basé la macro sur ces infos de la colonne B, non ?
Je remets un lien vers le fichier débarrassé des infos de la colonne B : http://www.cjoint.com/c/FAoiyzQCAya (j'ai laissé la macro et l'onglet " MichD").
Merci beaucoup MichD pour tes efforts... mais y a un hic !
Rassure-toi, c'est de ma faute : en fait, les infos de la colonne B ("Nom", "qualif", "Activités",...) n'existent pas dans mon listing original (je les avais mises effectivement pour repérer plus facilement les données sur le fichier de test). Je constate que la macro fonctionne bien avec les données test mais lorsq ue je teste avec mes fiches (copier-coller en colonne A), il ne se produit rien sans la colonne B (si je la laisse, le résultat est décalé et s' arrête à la 3ème ligne avec un boîte de dialogue mentionnant : "Err eur d'execution '9'...)
J'imagine que tu avais basé la macro sur ces infos de la colonne B, non ?
Je remets un lien vers le fichier débarrassé des infos de la colonne B : http://www.cjoint.com/c/FAoiyzQCAya (j'ai laissé la macro et l'onglet " MichD").
A vous lire, Cordialement, Go2.
MichD
Ton fichier, de la manière dont il est organisé, il est presque impossible de créer une macro pour faire ce que tu désires.
Exemple d'une difficulté : Après les activités, tu as le nom de la rue. Comment faire comprendre à la macro que l'information suivant la dernière activité n'est pas une activité mais le nom de la rue.
As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans ton fichier? Peux-tu en regrouper une? Si oui, publie-la!
Ton fichier, de la manière dont il est organisé, il est presque
impossible de créer une macro pour faire ce que tu désires.
Exemple d'une difficulté :
Après les activités, tu as le nom de la rue. Comment faire comprendre à
la macro que l'information suivant la dernière activité n'est pas une
activité mais le nom de la rue.
As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans ton
fichier? Peux-tu en regrouper une? Si oui, publie-la!
Ton fichier, de la manière dont il est organisé, il est presque impossible de créer une macro pour faire ce que tu désires.
Exemple d'une difficulté : Après les activités, tu as le nom de la rue. Comment faire comprendre à la macro que l'information suivant la dernière activité n'est pas une activité mais le nom de la rue.
As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans ton fichier? Peux-tu en regrouper une? Si oui, publie-la!
gorwel2
Le jeudi 14 janvier 2016 21:24:10 UTC+1, MichD a écrit :
Ton fichier, de la manière dont il est organisé, il est presque impossible de créer une macro pour faire ce que tu désires. Exemple d'une difficulté : Après les activités, tu as le nom de la rue. Comment faire comprendre à la macro que l'information suivant la dernière activité n'est pas une activité mais le nom de la rue. As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans t on fichier? Peux-tu en regrouper une? Si oui, publie-la!
Bonjour, J'ai bien conscience que c'est difficile mais j'ai bon espoir ! (ça fait vivre ;-!) Je mets un extrait aussi exhaustif que possible ici : http://www.cjoint.com/c/FApqDYINnYa (j'ai repris la macro dedans)...
Je me disais que les seuls points de repère était le champs télépho ne (il apparaît systématiquement je pense) ainsi que les lignes qui s éparent chaque fiche. (Il peut y avoir une ligne vierge ou 2 après les activités mais ça je pourrais le rectifier si besoin, ex : ligne n°13 4)...
A vous lire, cdlt, Go2.
Le jeudi 14 janvier 2016 21:24:10 UTC+1, MichD a écrit :
Ton fichier, de la manière dont il est organisé, il est presque
impossible de créer une macro pour faire ce que tu désires.
Exemple d'une difficulté :
Après les activités, tu as le nom de la rue. Comment faire comprendre à
la macro que l'information suivant la dernière activité n'est pas une
activité mais le nom de la rue.
As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans t on
fichier? Peux-tu en regrouper une? Si oui, publie-la!
Bonjour,
J'ai bien conscience que c'est difficile mais j'ai bon espoir ! (ça fait vivre ;-!) Je mets un extrait aussi exhaustif que possible ici :
http://www.cjoint.com/c/FApqDYINnYa (j'ai repris la macro dedans)...
Je me disais que les seuls points de repère était le champs télépho ne (il apparaît systématiquement je pense) ainsi que les lignes qui s éparent chaque fiche. (Il peut y avoir une ligne vierge ou 2 après les activités mais ça je pourrais le rectifier si besoin, ex : ligne n°13 4)...
Le jeudi 14 janvier 2016 21:24:10 UTC+1, MichD a écrit :
Ton fichier, de la manière dont il est organisé, il est presque impossible de créer une macro pour faire ce que tu désires. Exemple d'une difficulté : Après les activités, tu as le nom de la rue. Comment faire comprendre à la macro que l'information suivant la dernière activité n'est pas une activité mais le nom de la rue. As-tu une liste "EXHAUSTIVE" des activités possibles utilisées dans t on fichier? Peux-tu en regrouper une? Si oui, publie-la!
Bonjour, J'ai bien conscience que c'est difficile mais j'ai bon espoir ! (ça fait vivre ;-!) Je mets un extrait aussi exhaustif que possible ici : http://www.cjoint.com/c/FApqDYINnYa (j'ai repris la macro dedans)...
Je me disais que les seuls points de repère était le champs télépho ne (il apparaît systématiquement je pense) ainsi que les lignes qui s éparent chaque fiche. (Il peut y avoir une ligne vierge ou 2 après les activités mais ça je pourrais le rectifier si besoin, ex : ligne n°13 4)...
A vous lire, cdlt, Go2.
MichD
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontrer dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontrer
dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
d 'Le vendredi 15 janvier 2016 18:47:38 UTC+1, MichD a écrit :
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontre r dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
Ok, j'ai compté une vingtaine d'activités différentes (22 en fait) : Nautisme Planche Tennis Voile Surf Volley Badminton Rando Paramoteur Body Paddle Marche Parachute asc. Pédalo Quad Squash Jet-ski Ski nautique Hydrospeed Via ferrata Equitation Escalade
Cdlt, Go2.
isabelle
bonjour go2,
j'ai mis la liste des Activitées sur la feuille Activitées, et j'ai nommé la plage dynamiquement : Name: "Activitées" Formule: ÞCALER(Activités!$A$2;;;NBVAL(Activités!$A:$A)-1)
Sub test() Dim Ligne As Long, derCell As Long, n As Integer, a As Long Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données Set Sh2 = Worksheets("MichD") 'feuille résultat derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a) If IsEmpty(pl) Then n = 1
Select Case a Case 1: Sh2.Cells(Ligne, 1) = pl Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl End Select
If pl = "Qualif BEES" Then Sh2.Cells(Ligne, 2) = "Qualif BEES" End If
If IsNumeric(Left(pl, 5)) Then Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1) Sh2.Cells(Ligne, 5) = Val(Left(pl, 5)) Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6) End If
If Left(pl, 3) = "Tel" Then Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6) End If
If Left(pl, 3) = "Fax" Then Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6) End If
If Left(pl, 8) = "E-mail :" Then Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9) End If
If Left(pl, 8) = "Site web" Then Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10) End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then Activités = Activités & " " & pl.Value End If
If n = 1 Then Sh2.Cells(Ligne, 3) = Activités Activités = "" 'remise à zéro des activités Ligne = Ligne + 1 'prochain client n = 0 End If Next End Sub
isabelle
Le 2016-01-17 09:39, a écrit :
d 'Le vendredi 15 janvier 2016 18:47:38 UTC+1, MichD a écrit :
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontrer dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
Ok, j'ai compté une vingtaine d'activités différentes (22 en fait) : Nautisme Planche Tennis Voile Surf Volley Badminton Rando Paramoteur Body Paddle Marche Parachute asc. Pédalo Quad Squash Jet-ski Ski nautique Hydrospeed Via ferrata Equitation Escalade
Cdlt, Go2.
bonjour go2,
j'ai mis la liste des Activitées sur la feuille Activitées, et j'ai nommé la
plage dynamiquement :
Name: "Activitées"
Formule: ÞCALER(Activités!$A$2;;;NBVAL(Activités!$A:$A)-1)
Sub test()
Dim Ligne As Long, derCell As Long, n As Integer, a As Long
Dim Sh1 As Worksheet, Sh2 As Worksheet
Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données
Set Sh2 = Worksheets("MichD") 'feuille résultat
derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1
Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a)
If IsEmpty(pl) Then n = 1
Select Case a
Case 1: Sh2.Cells(Ligne, 1) = pl
Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl
End Select
If pl = "Qualif BEES" Then
Sh2.Cells(Ligne, 2) = "Qualif BEES"
End If
If IsNumeric(Left(pl, 5)) Then
Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1)
Sh2.Cells(Ligne, 5) = Val(Left(pl, 5))
Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6)
End If
If Left(pl, 3) = "Tel" Then
Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6)
End If
If Left(pl, 3) = "Fax" Then
Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6)
End If
If Left(pl, 8) = "E-mail :" Then
Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9)
End If
If Left(pl, 8) = "Site web" Then
Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10)
End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then
Activités = Activités & " " & pl.Value
End If
If n = 1 Then
Sh2.Cells(Ligne, 3) = Activités
Activités = "" 'remise à zéro des activités
Ligne = Ligne + 1 'prochain client
n = 0
End If
Next
End Sub
isabelle
Le 2016-01-17 09:39, gorwel2@gmail.com a écrit :
d 'Le vendredi 15 janvier 2016 18:47:38 UTC+1, MichD a écrit :
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontrer
dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
Ok, j'ai compté une vingtaine d'activités différentes (22 en fait) :
Nautisme
Planche
Tennis
Voile
Surf
Volley
Badminton
Rando
Paramoteur
Body
Paddle
Marche
Parachute asc.
Pédalo
Quad
Squash
Jet-ski
Ski nautique
Hydrospeed
Via ferrata
Equitation
Escalade
j'ai mis la liste des Activitées sur la feuille Activitées, et j'ai nommé la plage dynamiquement : Name: "Activitées" Formule: ÞCALER(Activités!$A$2;;;NBVAL(Activités!$A:$A)-1)
Sub test() Dim Ligne As Long, derCell As Long, n As Integer, a As Long Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données Set Sh2 = Worksheets("MichD") 'feuille résultat derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a) If IsEmpty(pl) Then n = 1
Select Case a Case 1: Sh2.Cells(Ligne, 1) = pl Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl End Select
If pl = "Qualif BEES" Then Sh2.Cells(Ligne, 2) = "Qualif BEES" End If
If IsNumeric(Left(pl, 5)) Then Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1) Sh2.Cells(Ligne, 5) = Val(Left(pl, 5)) Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6) End If
If Left(pl, 3) = "Tel" Then Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6) End If
If Left(pl, 3) = "Fax" Then Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6) End If
If Left(pl, 8) = "E-mail :" Then Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9) End If
If Left(pl, 8) = "Site web" Then Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10) End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then Activités = Activités & " " & pl.Value End If
If n = 1 Then Sh2.Cells(Ligne, 3) = Activités Activités = "" 'remise à zéro des activités Ligne = Ligne + 1 'prochain client n = 0 End If Next End Sub
isabelle
Le 2016-01-17 09:39, a écrit :
d 'Le vendredi 15 janvier 2016 18:47:38 UTC+1, MichD a écrit :
J'ai besoin d'une liste de TOUTES LES ACTIVITÉS que l'on peut rencontrer dans ton fichier et non plus d'enregistrements...
Exemple : "Ski", "Hockey", "Tennis" .... "Marche".
Ok, j'ai compté une vingtaine d'activités différentes (22 en fait) : Nautisme Planche Tennis Voile Surf Volley Badminton Rando Paramoteur Body Paddle Marche Parachute asc. Pédalo Quad Squash Jet-ski Ski nautique Hydrospeed Via ferrata Equitation Escalade
Cdlt, Go2.
isabelle
j'ai allégé un peu le code,
Sub test_2() Dim Ligne As Long, derCell As Long, n As Integer, a As Long Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données Set Sh2 = Worksheets("MichD") 'feuille résultat derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a) If IsEmpty(pl) Then n = 1
Select Case a Case 1: Sh2.Cells(Ligne, 1) = pl Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl End Select
Select Case pl Case "Qualif BEES": Sh2.Cells(Ligne, 2) = "Qualif BEES" Case "Tel": Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6) Case "Fax": Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6) Case "E-mail": Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9) Case "Site web": Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10) End Select
If IsNumeric(Left(pl, 5)) Then Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1) Sh2.Cells(Ligne, 5) = Val(Left(pl, 5)) Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6) End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then Activités = Activités & " " & pl.Value End If
If n = 1 Then Sh2.Cells(Ligne, 3) = Activités Activités = "" 'remise à zéro des activités Ligne = Ligne + 1 'prochain client n = 0 End If Next End Sub
isabelle
j'ai allégé un peu le code,
Sub test_2()
Dim Ligne As Long, derCell As Long, n As Integer, a As Long
Dim Sh1 As Worksheet, Sh2 As Worksheet
Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données
Set Sh2 = Worksheets("MichD") 'feuille résultat
derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1
Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a)
If IsEmpty(pl) Then n = 1
Select Case a
Case 1: Sh2.Cells(Ligne, 1) = pl
Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl
End Select
Select Case pl
Case "Qualif BEES": Sh2.Cells(Ligne, 2) = "Qualif BEES"
Case "Tel": Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6)
Case "Fax": Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6)
Case "E-mail": Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9)
Case "Site web": Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10)
End Select
If IsNumeric(Left(pl, 5)) Then
Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1)
Sh2.Cells(Ligne, 5) = Val(Left(pl, 5))
Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6)
End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then
Activités = Activités & " " & pl.Value
End If
If n = 1 Then
Sh2.Cells(Ligne, 3) = Activités
Activités = "" 'remise à zéro des activités
Ligne = Ligne + 1 'prochain client
n = 0
End If
Next
End Sub
Sub test_2() Dim Ligne As Long, derCell As Long, n As Integer, a As Long Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = Worksheets("Fiches en ligne") 'feuille liste de données Set Sh2 = Worksheets("MichD") 'feuille résultat derCell = Sh1.Cells(Rows.Count, 1).End(xlUp).Row + 1 Ligne = 2
For a = 1 To derCell
Set pl = Sh1.Range("A" & a) If IsEmpty(pl) Then n = 1
Select Case a Case 1: Sh2.Cells(Ligne, 1) = pl Case Else: If IsEmpty(Sh1.Range("A" & a - 1)) Then Sh2.Cells(Ligne, 1) = pl End Select
Select Case pl Case "Qualif BEES": Sh2.Cells(Ligne, 2) = "Qualif BEES" Case "Tel": Sh2.Cells(Ligne, 7) = "" & Right(pl, Len(pl) - 6) Case "Fax": Sh2.Cells(Ligne, 8) = "" & Right(pl, Len(pl) - 6) Case "E-mail": Sh2.Cells(Ligne, 9) = Right(pl, Len(pl) - 9) Case "Site web": Sh2.Cells(Ligne, 10) = Right(pl, Len(pl) - 10) End Select
If IsNumeric(Left(pl, 5)) Then Sh2.Cells(Ligne, 4) = Sh1.Range("A" & a - 1) Sh2.Cells(Ligne, 5) = Val(Left(pl, 5)) Sh2.Cells(Ligne, 6) = Right(pl, Len(pl) - 6) End If
If Not IsError(Application.Match(pl, Range("Activités"), 0)) Then Activités = Activités & " " & pl.Value End If
If n = 1 Then Sh2.Cells(Ligne, 3) = Activités Activités = "" 'remise à zéro des activités Ligne = Ligne + 1 'prochain client n = 0 End If Next End Sub
isabelle
isabelle
oups oublie la version allégée, elle ne fonctionne pas :-( isabelle
oups oublie la version allégée, elle ne fonctionne pas :-(
isabelle