Formulaire de recensement - Traitement des données

Mattttttttttrix

XLDnaute Junior
Bonjour à tous,

Bon, déjà, désolé pour le titre peu évocateur mais avec ce topic va aborder un certain nombre de questions toutes différentes et je n'ai pas trouvé "les bons mots".

Préambule :

Je suis acteur sur : Forum automobile Forum-Auto.com (pour ceux qui connaissent)
Dans le but d'organiser une section de ce forum, j'ai organisé un recensement de topic via ce formulaire googledocs ==> Formulaire google

Vous pouvez constater les champs à remplir.

J'obtiens donc un tableau avec différentes colonne qui regroupent les données dont j'ai besoin pour complèter un topic "annuaire" que voici : Annuaire forum-auto

Avant la mise en place du formulaire, j'ai fait la totalité des liens manuellement. Mais j'ai rencontré un certain nombre de souci :
- Doublon
- Lien mort
- Lien éronné
- Rentabilité en terme de temps assez désastreuse


J'ai donc décidé de rendre la chose plus facile via un formulaire, et un traitement excel. Et actuellement, j'en suis au traitement des données, je dois élaborer mon classeur excel avec différentes fonction pour que cela marche au top!

Projet :

Je me retrouve donc avec le fichier que voici : Voir pièce jointe
Un classeur avec des données brutes que je dois traiter pour en faire quelque chose de bien et de propre.

Je choisis donc de traiter les points dont j'ai besoin, Pas à Pas, avec le présent topic.

A tout de suite ;)
 

Pièces jointes

  • Annuaire FA.xlsx
    156.3 KB · Affichages: 295

Mattttttttttrix

XLDnaute Junior
Re : Formulaire de recensement - Traitement des données

Question 1 : Correction des erreurs de lien.

Vous pouvez constater dans le fichier, qu'il y a des liens éronnés. Je cherche donc, avant tous classement, à la corriger pour ne pas me retrouver avec des liens morts.

Pour cela, j'ai prévu la chose dans le formulaire en demandant le lien, ainsi que son numéro (facultatif) qui me permettra une comparaison.

Illustration :



Je souhaite pourvoir extraire le numero du topic à partir de son url, puis le comparer avec le numero inscrit (facultativement) dans la colonne J.

Donc :
1 - Extraction de l'url : "numero"
2 - Si J est plein ==> action1
3 - Si J est vide ==> action2

action1 - si "numero" = "J & *" ==> ligne suivante
- sinon ==> mise en forme de la cellule en rouge puis ligne suivante

Action2 - Copier "numero" dans "J & *" ==> ligne suivante


Ceci constitue mon premier Pas à Pas.

Merci :)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recensement - Traitement des données

Bonjour


Une formule pour extraire le numéro de sujet
Code:
=STXT(F3;CHERCHE("/sujet";F3)+6;6)
Par macro (pour remplir ta colonne et ne garder que la valeur)
Code:
Sub Macro1()
With Range("J3").Resize([F65536].End(xlUp).Row - 2)
   .FormulaR1C1 = "=MID(RC[-4],SEARCH(""/sujet"",RC[-4])+6,6)"
   .Value = .Value
 End With
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recensement - Traitement des données

Re


Si tu préfères du VBA sans formule ;) mais avec boucle
Code:
Sub a()
Dim i&
On Error Resume Next
For i = 3 To [F65536].End(xlUp).Row
With Cells(i, "J")
.Value = Split(Split(.Offset(, -4).Text, "/sujet")(1), ".")(0)
End With
Next i
End Sub

EDITION: Waouh, Hugh Laurie est membre d'XLD, cool ;)
 

Mattttttttttrix

XLDnaute Junior
Re : Formulaire de recensement - Traitement des données

La première marche très bien, mais j'arrive pas à comprendre le code pour en faire ce que je veux...

La seconde fonctionne tout aussi bien. Je comprends le code. J'ai juste besoin de passer par une variable avant d'envoyer le résultat dans la cellule J*.


Code:
Sub a()

Dim numero As Integer
Dim i&

On Error Resume Next

For i = 3 To [F65536].End(xlUp).Row
       numero.Value = Split(Split(.Offset(, -4).Text, "/sujet")(1), ".")(0)

       With Cells(i, "j")
       .Value = numero
       End With
Next i
End Sub

Est-ce que ceci fonctionne?
 

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recensement - Traitement des données

Re


Tu peux aussi envisager de passer par un Array
Code:
Sub b()
Dim i&, tNumero(), j&
On Error Resume Next
j = 1
ReDim tNumero(1 To [F65536].End(xlUp).Row)
For i = 1 To [F65536].End(xlUp).Row
tNumero(j) = CStr(Split(Split(Cells(i + 2, "F").Text, "/sujet")(1), ".")(0))
j = j + 1
Next i
MsgBox tNumero(1)
MsgBox tNumero(3)
End Sub

Sinon en écrivant ton code précédent, cela fonctionne
Code:
Sub abis()
Dim i&
Dim numero As Range
On Error Resume Next
For i = 3 To [F65536].End(xlUp).Row
Set numero = Cells(i, "j")
numero.Value = Split(Split(numero.Offset(, -4).Text, "/sujet")(1), ".")(0)
Next i
End Sub
 
Dernière édition:

Mattttttttttrix

XLDnaute Junior
Re : Formulaire de recensement - Traitement des données

En fait, j'essaye de passer par une variable "numero" avant de balancer le résultat dans la cellule J* .

Parce que cette variable sera comparée à une autre variable. Dans mon second message j'ai essayé de l'expliquer ;) .
 

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recensement - Traitement des données

Re

J'ai bien compris mais ne sachant pas à quoi correspond la variable numero et sous quelle forme tu la stockes.
Tu essayé le code passant par un Array ?
Avec celui-ci tu pourrais comparer ce que tu veux comparer.

Reviens avec des explications plus détaillées, stp.
 

Mattttttttttrix

XLDnaute Junior
Re : Formulaire de recensement - Traitement des données

Qu'est-ce qu'un Array?

La variable "numéro" correspond à la suite de chiffre entre : sujet*****.htm

Je souhaite la stocker sous forme de texte, ou de nombre entier. Cela ne change rien pour moi puisque je ne compte pas faire de calcul avec :) .

Je pense que le plus simple, reste le nombre entier ;) .

Je joins un actigramme qui résume mon second message


Edit :

Après analyse en pas à pas. C'est l'extraction du numéro dans le lien qui pose problème.
Si je comprends bien
Set numero = Cells(i, "j")
C'est une ligne ou il va chercher la valeur en J, c'est ca?

Edit 2:

Non, c'est pas ca...
Je comprends pas le code de l'extraction :/
 

Pièces jointes

  • organigramme.doc
    29 KB · Affichages: 58
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recensement - Traitement des données

Re


Un réflexe à acquérir quand VBA te titille le cortex.
ALT+F11 puis F1
(en résumé; voir ce qui dit l'aide sur les Arrays (ou tableaux))

La code b dans le message #11 stocke déjà dans un tableau tes numéros.

La question qui reste est : je compare avec quoi le contenu de ce tableau ?


PS: Tu peux aussi lire ce fil de Zon (présent dans la FAQ du forum)
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
483

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 644
dernier inscrit
MOLOKO67