OVH Cloud OVH Cloud

Décaler les cellules d'une colonne en ligne selon critères

1 réponse
Avatar
benh2s2s5
Bonjour,

J'essaie en vain depuis un bout de temps =E0 essayer de quoi...mais sans
succ=E8s...Je sollicite donc l'aide de quelqu'un si possible. Voil=E0 mon
probl=E8me :

Dans ma colonne A, j'ai une liste d'entreprises, avec pour chaque dans
une cellule diff=E9rente un nom, une adresse, un pays, un num=E9ro de
t=E9l=E9phone, et parfois (sur certaines seulement mais al=E9atoirement)
fax, courriel et web link. Celles-ci sont s=E9par=E9s par une serie de 3
lignes vides.

Toutes ces donn=E9es sont =E0 la suite des autres, dans cette m=EAme
colonne A, chacune dans une cellule diff=E9rente. Une piste qui peut
=EAtre utile, chaque nom d'entreprise est en gras, alors que le reste
est normal.

Exemple sur 2 entreprises :

Balfour House
1490 Balfour Avenue, Vancouver, British Columbia, V6H 1Y1
Canada
Tel: 604-733-0222



Balmoral Detoxification Centre
667 Sibley Dr, Thunder Bay, STN P, Ontario, P7B 5G7
Canada
Tel: 807-623-6515
Fax: (807) 623-4988
web site link
email link


Ce que je souhaite, est d'obtenir une seule ligne par entreprise qui
reprendrait ces m=EAmes informations.

A date, j'ai essay=E9 la fonction d=E9caler sans trop de succ=E8s (je m'y
suis peut =EAtre mal pris). Une macro me semble plus appropri=E9 (en
travaillant peut =EAtre sur des similitudes sur les lignes comme le code
postal le mot "Tel", "Fax"..etc qui sont r=E9curents...) ...mais malgr=E9
plein de bonne volont=E9...je n'y arrive pas!

Je continue =E0 chercher, mais si quelqu'un a une id=E9e lumineuse l=E0
dessus, je le remercie par avance!

Ben

1 réponse

Avatar
MichDenis
La procédure suivante réorganise les données de la colonne A de la feuil1
en les copiant sur la feuil2

Attention : Nom des feuilles à adapter selon ton environnement.
'-------------------------------
Sub ReplaceFormats()

Dim CellFindFormat As CellFormat
Dim C As Range, D As Range
Dim Z, K As Integer, Lig As Long

Set CellFindFormat = Application.FindFormat
With CellFindFormat
.Clear
.Font.Bold = True
End With

'Feuille où sont les données
With Worksheets("Feuil1") 'Nom feuille à déterminer
Set rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

With rg
Do
If C Is Nothing Then
Set C = rg(rg(1, 1).Row + rg.Rows.Count - 1, 1)
End If
Set C = .Find(WHAT:="*", After:=C, SEARCHfORMAT:ÎllFindFormat)
If Not C Is Nothing Then
Set D = .Find(WHAT:="*", After:=C, SEARCHfORMAT:ÎllFindFormat)
If D.Row < C.Row Then
Z = Range(C, C.Offset(8))
K = 1
Else
Z = Range(C, D.Offset(-1))
End If
'Feuille où sont copiés les données
With Worksheets("Feuil2")
Lig = .Range("A65536").End(xlUp)(2).Row
Select Case TypeName(Z)
Case "Variant()"
.Range("A" & Lig).Resize(UBound(Z, 2), _
UBound(Z, 1)) = Application.Transpose(Z)
Case "String"
.Range("A" & Lig) = Z
End Select
If K = 1 Then Exit Sub
End With
End If
Loop Until C Is Nothing
End With

End Sub
'-----------------------------------------



a écrit dans le message de news:

Bonjour,

J'essaie en vain depuis un bout de temps à essayer de quoi...mais sans
succès...Je sollicite donc l'aide de quelqu'un si possible. Voilà mon
problème :

Dans ma colonne A, j'ai une liste d'entreprises, avec pour chaque dans
une cellule différente un nom, une adresse, un pays, un numéro de
téléphone, et parfois (sur certaines seulement mais aléatoirement)
fax, courriel et web link. Celles-ci sont séparés par une serie de 3
lignes vides.

Toutes ces données sont à la suite des autres, dans cette même
colonne A, chacune dans une cellule différente. Une piste qui peut
être utile, chaque nom d'entreprise est en gras, alors que le reste
est normal.

Exemple sur 2 entreprises :

Balfour House
1490 Balfour Avenue, Vancouver, British Columbia, V6H 1Y1
Canada
Tel: 604-733-0222



Balmoral Detoxification Centre
667 Sibley Dr, Thunder Bay, STN P, Ontario, P7B 5G7
Canada
Tel: 807-623-6515
Fax: (807) 623-4988
web site link
email link


Ce que je souhaite, est d'obtenir une seule ligne par entreprise qui
reprendrait ces mêmes informations.

A date, j'ai essayé la fonction décaler sans trop de succès (je m'y
suis peut être mal pris). Une macro me semble plus approprié (en
travaillant peut être sur des similitudes sur les lignes comme le code
postal le mot "Tel", "Fax"..etc qui sont récurents...) ...mais malgré
plein de bonne volonté...je n'y arrive pas!

Je continue à chercher, mais si quelqu'un a une idée lumineuse là
dessus, je le remercie par avance!

Ben