extraire des données

Le
lauxeti
Bonsoir,

Je reçois un fichier ayant 1 seule colonne de la forme suivante
(fichier txt) :
La colonne A contient par ex:
Site A
Lien1
1/2/8 actor No No Yes Yes No
1/2/8 partner No No Yes Yes No
2/2/8 actor No No Yes Yes Yes
2/2/8 partner No No Yes Yes Yes
Lien 1+y

Site x
Lien1
1/2/8 actor No No Yes Yes Yes
1/2/8 partner No No Yes Yes Yes
2/2/8 actor No No Yes Yes No
2/2/8 partner No No Yes Yes No
Lien 1+y

Comment avoir par macro sur 9 colonnes
Site A Lien1 1/2/8 actor No No Yes Yes No
Site A Lien1 1/2/8 partner No No Yes Yes No
Site A Lien1 2/2/8 actor No No Yes Yes Yes
Site A Lien1 2/2/8 partner No No Yes Yes Yes
Site A Lien y+1

Site B Lien1 1/2/8 actor No No Yes Yes Yes
Site B Lien1 1/2/8 partner No No Yes Yes Yes
Site B Lien1 2/2/8 actor No No Yes Yes No
Site B Lien1 2/2/8 partner No No Yes Yes No
Site B Lien y+1

Nb: Site de A à x, Lien de 1 à y

Merci de vos reponses
Cordialement
Le Lauxeti
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18469621
Excel sait ouvrir des fichiers texte.

Fichier / ouvrir / tu sélectionnes ton fichier
Un assistant importation de texte va s'ouvrir
Fenêtre 1 -> tu sélectionnes "Délimité"
fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
cela représente le séparateur utilisé dans ton fichier
entre chacun des éléments texte.

et tu peux cliquer directement sur terminer.




"lauxeti"
Bonsoir,

Je reçois un fichier ayant 1 seule colonne de la forme suivante
(fichier txt) :
La colonne A contient par ex:
Site A
Lien1
1/2/8 actor No No Yes Yes No
1/2/8 partner No No Yes Yes No
2/2/8 actor No No Yes Yes Yes
2/2/8 partner No No Yes Yes Yes
Lien 1+y
...
Site x
Lien1
1/2/8 actor No No Yes Yes Yes
1/2/8 partner No No Yes Yes Yes
2/2/8 actor No No Yes Yes No
2/2/8 partner No No Yes Yes No
Lien 1+y
...
Comment avoir par macro sur 9 colonnes
Site A Lien1 1/2/8 actor No No Yes Yes No
Site A Lien1 1/2/8 partner No No Yes Yes No
Site A Lien1 2/2/8 actor No No Yes Yes Yes
Site A Lien1 2/2/8 partner No No Yes Yes Yes
Site A Lien y+1
...
Site B Lien1 1/2/8 actor No No Yes Yes Yes
Site B Lien1 1/2/8 partner No No Yes Yes Yes
Site B Lien1 2/2/8 actor No No Yes Yes No
Site B Lien1 2/2/8 partner No No Yes Yes No
Site B Lien y+1

Nb: Site de A à x, Lien de 1 à y

Merci de vos reponses
Cordialement
Le Lauxeti
lauxeti
Le #18470151
On 24 jan, 00:24, "michdenis"
Excel sait ouvrir des fichiers texte.

Fichier / ouvrir / tu sélectionnes ton fichier
Un assistant importation de texte va s'ouvrir
Fenêtre 1 -> tu sélectionnes "Délimité"
fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
cela représente le séparateur utilisé dans ton fichier
entre chacun des éléments texte.

et tu peux cliquer directement sur terminer.

"lauxeti"
Bonsoir,

Je reçois un fichier ayant 1 seule colonne de la forme suivante
(fichier txt) :
La colonne A contient  par ex:
Site A
Lien1
1/2/8          actor     No    No    Yes   Yes   No
1/2/8          partner   No    No    Yes   Yes   No
2/2/8          actor     No    No    Yes   Yes   Yes
2/2/8          partner   No    No    Yes   Yes   Yes
Lien 1+y
...
Site x
Lien1
1/2/8          actor     No    No    Yes   Yes   Yes
1/2/8          partner   No    No    Yes   Yes   Yes
2/2/8          actor     No    No    Yes   Yes   No
2/2/8          partner   No    No    Yes   Yes   No
Lien 1+y
...
Comment avoir par macro sur 9 colonnes
Site A Lien1 1/2/8 actor No No Yes Yes No
Site A Lien1 1/2/8 partner No No Yes Yes No
Site A Lien1 2/2/8 actor No No Yes Yes Yes
Site A Lien1 2/2/8 partner No No Yes Yes Yes
Site A       Lien y+1
...
Site B Lien1 1/2/8 actor No No Yes Yes Yes
Site B Lien1 1/2/8 partner No No Yes Yes Yes
Site B Lien1 2/2/8 actor No No Yes Yes No
Site B Lien1 2/2/8 partner No No Yes Yes No
Site B       Lien y+1

Nb: Site de A à x, Lien de 1 à y

Merci de vos reponses
Cordialement
Le Lauxeti



Bonjour,
tout à fait d'accord sur le principe Données/convertir ... mais cela
ne repond pas à ma problematique de
redistribution sur plusieurs colonnes , je pensais à un While ...End
while mais tres franchement dans les boucles je me plante
lamentablement
michdenis
Le #18473581
À cette adresse, tu exemple.
Tu décompresses le fichier denis.rar et tu places
tous les fichiers dans le même répertoire...
Tu ouvres le fichier Résultat et tu t'amuses.

Tu as une procédure capable d'extraire toutes les
données de toutes les feuilles des 3 autres classeurs
contenus dans le répertoire.

Ce n'est qu'un exemple, tu l'adaptes ... et ajoute
une gestion d'erreur au besoin.

http://cjoint.com/?bAp2KSWVZ1




"lauxeti"
On 24 jan, 00:24, "michdenis"
Excel sait ouvrir des fichiers texte.

Fichier / ouvrir / tu sélectionnes ton fichier
Un assistant importation de texte va s'ouvrir
Fenêtre 1 -> tu sélectionnes "Délimité"
fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
cela représente le séparateur utilisé dans ton fichier
entre chacun des éléments texte.

et tu peux cliquer directement sur terminer.

"lauxeti"
Bonsoir,

Je reçois un fichier ayant 1 seule colonne de la forme suivante
(fichier txt) :
La colonne A contient par ex:
Site A
Lien1
1/2/8 actor No No Yes Yes No
1/2/8 partner No No Yes Yes No
2/2/8 actor No No Yes Yes Yes
2/2/8 partner No No Yes Yes Yes
Lien 1+y
...
Site x
Lien1
1/2/8 actor No No Yes Yes Yes
1/2/8 partner No No Yes Yes Yes
2/2/8 actor No No Yes Yes No
2/2/8 partner No No Yes Yes No
Lien 1+y
...
Comment avoir par macro sur 9 colonnes
Site A Lien1 1/2/8 actor No No Yes Yes No
Site A Lien1 1/2/8 partner No No Yes Yes No
Site A Lien1 2/2/8 actor No No Yes Yes Yes
Site A Lien1 2/2/8 partner No No Yes Yes Yes
Site A Lien y+1
...
Site B Lien1 1/2/8 actor No No Yes Yes Yes
Site B Lien1 1/2/8 partner No No Yes Yes Yes
Site B Lien1 2/2/8 actor No No Yes Yes No
Site B Lien1 2/2/8 partner No No Yes Yes No
Site B Lien y+1

Nb: Site de A à x, Lien de 1 à y

Merci de vos reponses
Cordialement
Le Lauxeti



Bonjour,
tout à fait d'accord sur le principe Données/convertir ... mais cela
ne repond pas à ma problematique de
redistribution sur plusieurs colonnes , je pensais à un While ...End
while mais tres franchement dans les boucles je me plante
lamentablement
lauxeti
Le #18474301
On 24 jan, 15:58, "michdenis"
À cette adresse, tu exemple.
Tu décompresses le fichier denis.rar et tu places
tous les fichiers dans le même répertoire...
Tu ouvres le fichier Résultat et tu t'amuses.

Tu as une procédure capable d'extraire toutes les
données de toutes les feuilles des 3 autres classeurs
contenus dans le répertoire.

Ce n'est qu'un exemple, tu l'adaptes ... et ajoute
une gestion d'erreur au besoin.

 http://cjoint.com/?bAp2KSWVZ1

"lauxeti"
On 24 jan, 00:24, "michdenis"




> Excel sait ouvrir des fichiers texte.

> Fichier / ouvrir / tu sélectionnes ton fichier
> Un assistant importation de texte va s'ouvrir
> Fenêtre 1 -> tu sélectionnes "Délimité"
> fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
> cela représente le séparateur utilisé dans ton fichier
> entre chacun des éléments texte.

> et tu peux cliquer directement sur terminer.

> "lauxeti" >
> Bonsoir,

> Je reçois un fichier ayant 1 seule colonne de la forme suivante
> (fichier txt) :
> La colonne A contient  par ex:
> Site A
> Lien1
> 1/2/8          actor     No    No    Yes   Yes   No
> 1/2/8          partner   No    No    Yes   Yes   No
> 2/2/8          actor     No    No    Yes   Yes   Yes
> 2/2/8          partner   No    No    Yes   Yes   Yes
> Lien 1+y
> ...
> Site x
> Lien1
> 1/2/8          actor     No    No    Yes   Yes   Yes
> 1/2/8          partner   No    No    Yes   Yes   Yes
> 2/2/8          actor     No    No    Yes   Yes   No
> 2/2/8          partner   No    No    Yes   Yes   No
> Lien 1+y
> ...
> Comment avoir par macro sur 9 colonnes
> Site A Lien1 1/2/8 actor No No Yes Yes No
> Site A Lien1 1/2/8 partner No No Yes Yes No
> Site A Lien1 2/2/8 actor No No Yes Yes Yes
> Site A Lien1 2/2/8 partner No No Yes Yes Yes
> Site A       Lien y+1
> ...
> Site B Lien1 1/2/8 actor No No Yes Yes Yes
> Site B Lien1 1/2/8 partner No No Yes Yes Yes
> Site B Lien1 2/2/8 actor No No Yes Yes No
> Site B Lien1 2/2/8 partner No No Yes Yes No
> Site B       Lien y+1

> Nb: Site de A à x, Lien de 1 à y

> Merci de vos reponses
> Cordialement
> Le Lauxeti

Bonjour,
tout à fait d'accord sur le principe Données/convertir ... mais cela
ne repond pas à ma problematique de
redistribution sur plusieurs colonnes , je pensais à un While ...End
while mais tres franchement dans les boucles je me plante
lamentablement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour à tous,
Denis ,
Je pense que je me suis peut etre mal explique , je joint un exemple
afin de comprendre ma problematique
j'espere que cela sera plus simple
http://cjoint.com/?bArnoG2MIa

Merci pour vos reponses
Le Lauxeti
michdenis
Le #18476441
Retour de ton fichier : http://cjoint.com/?bAuoyCFjQU



"lauxeti"
On 24 jan, 15:58, "michdenis"
À cette adresse, tu exemple.
Tu décompresses le fichier denis.rar et tu places
tous les fichiers dans le même répertoire...
Tu ouvres le fichier Résultat et tu t'amuses.

Tu as une procédure capable d'extraire toutes les
données de toutes les feuilles des 3 autres classeurs
contenus dans le répertoire.

Ce n'est qu'un exemple, tu l'adaptes ... et ajoute
une gestion d'erreur au besoin.

http://cjoint.com/?bAp2KSWVZ1

"lauxeti"
On 24 jan, 00:24, "michdenis"




> Excel sait ouvrir des fichiers texte.

> Fichier / ouvrir / tu sélectionnes ton fichier
> Un assistant importation de texte va s'ouvrir
> Fenêtre 1 -> tu sélectionnes "Délimité"
> fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
> cela représente le séparateur utilisé dans ton fichier
> entre chacun des éléments texte.

> et tu peux cliquer directement sur terminer.

> "lauxeti" >
> Bonsoir,

> Je reçois un fichier ayant 1 seule colonne de la forme suivante
> (fichier txt) :
> La colonne A contient par ex:
> Site A
> Lien1
> 1/2/8 actor No No Yes Yes No
> 1/2/8 partner No No Yes Yes No
> 2/2/8 actor No No Yes Yes Yes
> 2/2/8 partner No No Yes Yes Yes
> Lien 1+y
> ...
> Site x
> Lien1
> 1/2/8 actor No No Yes Yes Yes
> 1/2/8 partner No No Yes Yes Yes
> 2/2/8 actor No No Yes Yes No
> 2/2/8 partner No No Yes Yes No
> Lien 1+y
> ...
> Comment avoir par macro sur 9 colonnes
> Site A Lien1 1/2/8 actor No No Yes Yes No
> Site A Lien1 1/2/8 partner No No Yes Yes No
> Site A Lien1 2/2/8 actor No No Yes Yes Yes
> Site A Lien1 2/2/8 partner No No Yes Yes Yes
> Site A Lien y+1
> ...
> Site B Lien1 1/2/8 actor No No Yes Yes Yes
> Site B Lien1 1/2/8 partner No No Yes Yes Yes
> Site B Lien1 2/2/8 actor No No Yes Yes No
> Site B Lien1 2/2/8 partner No No Yes Yes No
> Site B Lien y+1

> Nb: Site de A à x, Lien de 1 à y

> Merci de vos reponses
> Cordialement
> Le Lauxeti

Bonjour,
tout à fait d'accord sur le principe Données/convertir ... mais cela
ne repond pas à ma problematique de
redistribution sur plusieurs colonnes , je pensais à un While ...End
while mais tres franchement dans les boucles je me plante
lamentablement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour à tous,
Denis ,
Je pense que je me suis peut etre mal explique , je joint un exemple
afin de comprendre ma problematique
j'espere que cela sera plus simple
http://cjoint.com/?bArnoG2MIa

Merci pour vos reponses
Le Lauxeti
michdenis
Le #18476681
Dans le classeur précédent, je m'étais par rendu compte
qu'il y avait un problème avec le format des dates.

Voici la correction :
http://cjoint.com/?bAuZpVMi7R




"lauxeti"
On 24 jan, 15:58, "michdenis"
À cette adresse, tu exemple.
Tu décompresses le fichier denis.rar et tu places
tous les fichiers dans le même répertoire...
Tu ouvres le fichier Résultat et tu t'amuses.

Tu as une procédure capable d'extraire toutes les
données de toutes les feuilles des 3 autres classeurs
contenus dans le répertoire.

Ce n'est qu'un exemple, tu l'adaptes ... et ajoute
une gestion d'erreur au besoin.

http://cjoint.com/?bAp2KSWVZ1

"lauxeti"
On 24 jan, 00:24, "michdenis"




> Excel sait ouvrir des fichiers texte.

> Fichier / ouvrir / tu sélectionnes ton fichier
> Un assistant importation de texte va s'ouvrir
> Fenêtre 1 -> tu sélectionnes "Délimité"
> fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
> cela représente le séparateur utilisé dans ton fichier
> entre chacun des éléments texte.

> et tu peux cliquer directement sur terminer.

> "lauxeti" >
> Bonsoir,

> Je reçois un fichier ayant 1 seule colonne de la forme suivante
> (fichier txt) :
> La colonne A contient par ex:
> Site A
> Lien1
> 1/2/8 actor No No Yes Yes No
> 1/2/8 partner No No Yes Yes No
> 2/2/8 actor No No Yes Yes Yes
> 2/2/8 partner No No Yes Yes Yes
> Lien 1+y
> ...
> Site x
> Lien1
> 1/2/8 actor No No Yes Yes Yes
> 1/2/8 partner No No Yes Yes Yes
> 2/2/8 actor No No Yes Yes No
> 2/2/8 partner No No Yes Yes No
> Lien 1+y
> ...
> Comment avoir par macro sur 9 colonnes
> Site A Lien1 1/2/8 actor No No Yes Yes No
> Site A Lien1 1/2/8 partner No No Yes Yes No
> Site A Lien1 2/2/8 actor No No Yes Yes Yes
> Site A Lien1 2/2/8 partner No No Yes Yes Yes
> Site A Lien y+1
> ...
> Site B Lien1 1/2/8 actor No No Yes Yes Yes
> Site B Lien1 1/2/8 partner No No Yes Yes Yes
> Site B Lien1 2/2/8 actor No No Yes Yes No
> Site B Lien1 2/2/8 partner No No Yes Yes No
> Site B Lien y+1

> Nb: Site de A à x, Lien de 1 à y

> Merci de vos reponses
> Cordialement
> Le Lauxeti

Bonjour,
tout à fait d'accord sur le principe Données/convertir ... mais cela
ne repond pas à ma problematique de
redistribution sur plusieurs colonnes , je pensais à un While ...End
while mais tres franchement dans les boucles je me plante
lamentablement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour à tous,
Denis ,
Je pense que je me suis peut etre mal explique , je joint un exemple
afin de comprendre ma problematique
j'espere que cela sera plus simple
http://cjoint.com/?bArnoG2MIa

Merci pour vos reponses
Le Lauxeti
lauxeti
Le #18478221
On 24 jan, 20:53, "michdenis"
Dans le classeur précédent, je m'étais par rendu compte
qu'il y avait un problème avec le format des dates.

Voici la correction :http://cjoint.com/?bAuZpVMi7R

"lauxeti"
On 24 jan, 15:58, "michdenis"




> À cette adresse, tu exemple.
> Tu décompresses le fichier denis.rar et tu places
> tous les fichiers dans le même répertoire...
> Tu ouvres le fichier Résultat et tu t'amuses.

> Tu as une procédure capable d'extraire toutes les
> données de toutes les feuilles des 3 autres classeurs
> contenus dans le répertoire.

> Ce n'est qu'un exemple, tu l'adaptes ... et ajoute
> une gestion d'erreur au besoin.

>  http://cjoint.com/?bAp2KSWVZ1

> "lauxeti" >
> On 24 jan, 00:24, "michdenis"
> > Excel sait ouvrir des fichiers texte.

> > Fichier / ouvrir / tu sélectionnes ton fichier
> > Un assistant importation de texte va s'ouvrir
> > Fenêtre 1 -> tu sélectionnes "Délimité"
> > fenêtre 2 -> tu sélectionnes "Tabulation" ou Espace
> > cela représente le séparateur utilisé dans ton fichier
> > entre chacun des éléments texte.

> > et tu peux cliquer directement sur terminer.

> > "lauxeti" > >
> > Bonsoir,

> > Je reçois un fichier ayant 1 seule colonne de la forme suivante
> > (fichier txt) :
> > La colonne A contient  par ex:
> > Site A
> > Lien1
> > 1/2/8          actor     No    No    Yes   Ye s   No
> > 1/2/8          partner   No    No    Yes   Yes   No
> > 2/2/8          actor     No    No    Yes   Ye s   Yes
> > 2/2/8          partner   No    No    Yes   Yes   Yes
> > Lien 1+y
> > ...
> > Site x
> > Lien1
> > 1/2/8          actor     No    No    Yes   Ye s   Yes
> > 1/2/8          partner   No    No    Yes   Yes   Yes
> > 2/2/8          actor     No    No    Yes   Ye s   No
> > 2/2/8          partner   No    No    Yes   Yes   No
> > Lien 1+y
> > ...
> > Comment avoir par macro sur 9 colonnes
> > Site A Lien1 1/2/8 actor No No Yes Yes No
> > Site A Lien1 1/2/8 partner No No Yes Yes No
> > Site A Lien1 2/2/8 actor No No Yes Yes Yes
> > Site A Lien1 2/2/8 partner No No Yes Yes Yes
> > Site A       Lien y+1
> > ...
> > Site B Lien1 1/2/8 actor No No Yes Yes Yes
> > Site B Lien1 1/2/8 partner No No Yes Yes Yes
> > Site B Lien1 2/2/8 actor No No Yes Yes No
> > Site B Lien1 2/2/8 partner No No Yes Yes No
> > Site B       Lien y+1

> > Nb: Site de A à x, Lien de 1 à y

> > Merci de vos reponses
> > Cordialement
> > Le Lauxeti

> Bonjour,
> tout à fait d'accord sur le principe Données/convertir ... mais cel a
> ne repond pas à ma problematique de
> redistribution sur plusieurs colonnes , je pensais à un While ...End
> while mais tres franchement dans les boucles je me plante
> lamentablement- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonjour à tous,
Denis ,
Je pense que je me suis peut etre mal explique , je joint un exemple
afin de comprendre ma problematique
j'espere que cela sera plus simplehttp://cjoint.com/?bArnoG2MIa

Merci pour vos reponses
Le Lauxeti- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Merci Denis mais le pb est que ce n'est pas une date mais une valeur
si je peux me permettre peux tu m'expliquer un peu le
For Each C In Rg
...
Next
Merci
michdenis
Le #18479251
| Merci Denis mais le pb est que ce n'est pas une date mais une valeur
| si je peux me permettre peux tu m'expliquer un peu le
| For Each C In Rg
| ...
| Next

| le pb est que ce n'est pas une date mais une valeur
*** Je dénote pas cette difficulté. Il faudrait que tu donnes
plus d'information. Dans le fichier que je t'ai transmis les
cellules ont bien un format et leur contenu se comporte
comme des data "date".

Pour cette partie du code

For Each C In Rg
Fonction Split requiert excel 2000 ou plus récent
Cette fonction retourne un Tableau (array) de chaque
section de chaque ligne qui sont séparée par un espace
T = Split(C, " ")
'Nombre d'éléments contenu dans le tableau T
Nb = UBound(T)
' si nb >1 on a affaire à une ligne différente de Site A ou Lien 1
If Nb > 1 Then
Une boucle sur chacun des éléments du tableau T
For A = 0 To Nb
'Supprime les espaces entourant chacun des items
' P représente la chaîne extraite contenu dans le tableau
P = Replace(T(A), " ", "")
'Chaque ligne contient un caractère Chr(160) qui
'ressemble à un espace (barre d'espacement mais qui
'je crois -> un espace insécable
P = Replace(P, Chr(160), "")
'Comme chaque expression dans ton tableau est entourée
' de beaucoup d'espace, la fonction split tronçonne la chaîne
'dont certaines représentent seulement des " ". Après avoir
'supprimé les espaces P = ""
If P <> "" Then
'variable d'incrémentation pour le tableau Tbl
X = X + 1
'Un test particulier pour tester le champ date
If IsDate(P) Then
'chaque donnée est mise dans un tableau temporaire
'Ce tableau est redimensionner à chaque passage
ReDim Preserve Tbl(X)
'Trim -> s'assure qu'il ne reste plus " " sur l'élément T(a)
'Cdate -> fonction de conversion pour transformer une
'chaîne en date
Tbl(X) = CDate(Trim(T(A)))
Else
ReDim Preserve Tbl(X)
Tbl(X) = Trim(T(A))
End If
End If
Next
'Copie du contenu tbl vers la même ligne de ton
'tableau de données mais 7 colonnes plus à droite
C.Offset(, 7).Resize(, UBound(Tbl) + 1) = Tbl
'efface le contenu du tableau et remet x = 0 pour
'le traitement de la future ligne
Erase Tbl: X = 0
Else
'Si split retourne 1 et moins
'Test pour savoir si le contenu est site ou lien
'et copie dans la colonne appropriée
If UCase(C.Value) Like "SITE*" Then
C.Offset(, 6) = C.Value
ElseIf UCase(C.Value) Like "LIEN*" Then
C.Offset(, 7) = C.Value
End If
End If
Next
lauxeti
Le #18502111
On 25 jan, 12:30, "michdenis"
| Merci Denis mais le pb est que ce n'est pas une date mais une valeur
| si je peux me permettre peux tu m'expliquer un peu le
| For Each C In Rg
| ...
| Next

|  le pb est que ce n'est pas une date mais une valeur
*** Je dénote pas cette difficulté.  Il faudrait que tu donnes
plus d'information. Dans le fichier que je t'ai transmis les
cellules ont bien un format et leur contenu se comporte
comme des data "date".

Pour cette partie du code

For Each C In Rg
Fonction Split requiert excel 2000 ou plus récent
Cette fonction retourne un Tableau (array) de chaque
section de chaque ligne qui sont séparée par un espace
    T = Split(C, " ")
    'Nombre d'éléments contenu dans le tableau T
    Nb = UBound(T)
    ' si nb >1 on a affaire à une ligne différente de Site A ou L ien 1
    If Nb > 1 Then
        Une boucle sur chacun des éléments du tableau T
        For A = 0 To Nb
            'Supprime les espaces entourant chacun des items
            ' P représente la chaîne extraite contenu dan s le tableau
             P = Replace(T(A), " ", "")
            'Chaque ligne contient un caractère Chr(160) qu i
             'ressemble à un espace (barre d'espacement m ais qui
             'je crois -> un espace insécable
             P = Replace(P, Chr(160), "")
             'Comme chaque expression dans ton tableau est entourée
             ' de beaucoup d'espace, la fonction split tron çonne la chaîne
             'dont certaines représentent seulement des "   ". Après avoir
             'supprimé les espaces P = ""
             If P <> "" Then
                'variable d'incrémentation pour le tabl eau Tbl
                X = X + 1
                'Un test particulier pour tester le champ date
                If IsDate(P) Then
                    'chaque donnée est mise dans un tableau temporaire
                    'Ce tableau est redimensionner à chaque passage
                    ReDim Preserve Tbl(X)
                    'Trim -> s'assure qu'il ne reste plus " " sur l'élément T(a)
                    'Cdate -> fonction de conversion pour transformer une
                     'chaîne en date
                    Tbl(X) = CDate(Trim(T(A)))
                Else
                    ReDim Preserve Tbl(X)
                    Tbl(X) = Trim(T(A))
                End If
            End If
        Next
        'Copie du contenu tbl vers la même ligne de ton
        'tableau de données mais 7 colonnes plus à droite
        C.Offset(, 7).Resize(, UBound(Tbl) + 1) = Tbl
        'efface le contenu du tableau et remet x = 0 pour
        'le traitement de la future ligne
        Erase Tbl: X = 0
    Else
        'Si split retourne 1 et moins
        'Test pour savoir si le contenu est site ou lien
        'et copie dans la colonne appropriée
        If UCase(C.Value) Like "SITE*" Then
            C.Offset(, 6) = C.Value
        ElseIf UCase(C.Value) Like "LIEN*" Then
            C.Offset(, 7) = C.Value
        End If
    End If
Next



Merci pour tous
Publicité
Poster une réponse
Anonyme