Diviser des infos séparées par un "-" et inscrire un degré

zbig

XLDnaute Occasionnel
Bonjour

Dans le fichier joint, il y a un tableau avec plusieurs colonnes

Dans les cellules de la colonne H , il peut avoir une à plusieurs infos séparées par un tiret "-".

JE souhaiterais lors du clic sur le bouton macro que la feuille résultats se vide puis se remplisse avec les infos ayant été alors séparées et dans al colonne I , un degré soit inscrit
Ex : athlétisme - volley ball - basket

athlétisme = degré 1
volley ball= degré 2
basket = degré 3

etc..

Quelqu'un aurait-il une idée?

merci
Zbig
 

Pièces jointes

  • apsa.xlsx
    14.7 KB · Affichages: 51

Bebere

XLDnaute Barbatruc
Re : Diviser des infos séparées par un "-" et inscrire un degré

bonjour zbig
mettre extension xlsm pour classeur avec macro
un code à tester et à améliorer/compléter
 

Pièces jointes

  • apsazbig.xls
    46 KB · Affichages: 43
  • apsazbig.xls
    46 KB · Affichages: 47
  • apsazbig.xls
    46 KB · Affichages: 44

zbig

XLDnaute Occasionnel
Re : Diviser des infos séparées par un "-" et inscrire un degré

Bonjour bebere

merci pour ton aide.
Il y a un problème dans la numérotation des degrés.

dans l'exemple, Monsieur K P a 3 activités, donc cela entraine degré1; degré2 et degré3
puis Monsieur C X a 2 activités donc degré 1 et degré 2 et non degré 4 et degré 5.

La numérotation se fait pour chaque personne, et il est important que la 1ère activité nommée soit estampillée degré1, la 2e degré2 etc...

voilà, peux tu essayer de voir ce problème de n° ?
merci

zbig
 

Jack2

XLDnaute Occasionnel
Re : Diviser des infos séparées par un "-" et inscrire un degré

Bonjour zbig, Bebere et le Forum,

Une solution pas optimale trouvée rapidement au boulot (je ne connais pas encore l'objet Dictionary. J'espère que quelqu'un va trouver une solution plus adaptée.

Remplacer le Case 9 par :
Code:
Case 9
St = Tbl(i, 8)
If e <> i Then d = NbrTirets(St)
e = i
Max = NbrTirets(St)
If e = i Then
    d = d - 1
    Max = Max - d
 End If
.Cells(l, j) = "Degré " & Max

Fonction appelée
Code:
Function NbrTirets(St As String) As Integer
Dim k As Integer, Tirets As Integer
Tirets = 0
For k = 1 To Len(St)
    If Mid(St, k, 1) = "-" Then Tirets = Tirets + 1
Next k
NbrTirets = Tirets + 1
End Function
Enfin rajouter
Code:
Dim St As String, e As Integer
A+ Jack2

Edition , désolé, ça ne marche pas, une des valeurs "Volley Ball" n'est triée ou pas dans l'ordre
 
Dernière édition:

zbig

XLDnaute Occasionnel
Re : Diviser des infos séparées par un "-" et inscrire un degré

Bonjour bebere, Jack et Forum

La numérotation fonctionne
Mais le copier-coller des infos n'est pas correct, il manque un champ

cordialement
Zbig
 

Pièces jointes

  • apsazbig2.xlsm
    25 KB · Affichages: 39
  • apsazbig2.xlsm
    25 KB · Affichages: 41
  • apsazbig2.xlsm
    25 KB · Affichages: 53

pierrejean

XLDnaute Barbatruc
Re : Diviser des infos séparées par un "-" et inscrire un degré

Bonjour zbig

Salut à tous

Pour le fun (exercice sur les tableaux)
 

Pièces jointes

  • apsazbig2.xlsm
    29.1 KB · Affichages: 33
  • apsazbig2.xlsm
    29.1 KB · Affichages: 42
  • apsazbig2.xlsm
    29.1 KB · Affichages: 41

pierrejean

XLDnaute Barbatruc
Re : Diviser des infos séparées par un "-" et inscrire un degré

Re

Voila avec commentaires dans le code (une bonne connaissance des tableaux Excel est tout de même requise)
 

Pièces jointes

  • apsazbig2.xlsm
    29.8 KB · Affichages: 51
  • apsazbig2.xlsm
    29.8 KB · Affichages: 44
  • apsazbig2.xlsm
    29.8 KB · Affichages: 47

pierrejean

XLDnaute Barbatruc
Re : Diviser des infos séparées par un "-" et inscrire un degré

Re

Toujours pour le fun
Autre macro plus facile à comprendre (mais surement un peu moins rapide)
 

Pièces jointes

  • apsazbig2.xlsm
    34.2 KB · Affichages: 44
  • apsazbig2.xlsm
    34.2 KB · Affichages: 48
  • apsazbig2.xlsm
    34.2 KB · Affichages: 42

zbig

XLDnaute Occasionnel
Re : Diviser des infos séparées par un "-" et inscrire un degré

Bonjour

n'ayant que 200 lignes maxi en feuille info, je ne vois pas la vitesse de la macro.
les 2 me conviennent.
Si tu peux ajouter les commentaires, et encore mieux :) merci

est ce possible d'y insérer un quadrillage automatique? et le noms des champs de titres en ligne1?

merci
Zbig
 

Bebere

XLDnaute Barbatruc
Re : Diviser des infos séparées par un "-" et inscrire un degré

bonjour PierreJean,Zbig,Jack
complété module1 avec fonction nbrtirets de Jack
mis une remarque dans feuille resultat
 

Pièces jointes

  • apsazbig2.xls
    62 KB · Affichages: 35
  • apsazbig2.xls
    62 KB · Affichages: 41
  • apsazbig2.xls
    62 KB · Affichages: 48

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 849
Membres
103 974
dernier inscrit
chmikha