Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Formatage base de données Football

Phytoman

XLDnaute Junior
Bonjour et merci pour toute l'aide déjà apportée jusqu'ici.

Dernière ligne droite, l'import des données de la fédération belge de Foot.
Les fichier Excel importés depuis la fédération de football belge ne sont pas exploitables en l’état.
Cette macro pourrait être dans un seul fichier, dans quel cas je devrais systématiquement faire un copier-coller des données reçues, soit propre à tous les classeurs, ce qui en faciliterait la tâche.
Il me faudrait les adapter comme suit :
  • Remplacer la colonne J (club visité) et K (club visiteur) par la concaténation suivante (ou ajouter deux colonnes) :
  • Nom de fichier= (voir liste plus bas) -->initiales
  • DIV = forcer à 5 caractères - Si <, ajouter des 0 avant (éviter risques de doublons)
  • Matricule = forcer à 5 caractères - Si <, ajouter des 0 avant
  • Liste des initiales des noms de fichier :
    • lieresdownP = lg
    • hairesdownP = ht
    • namresdownP = na
    • brwresdownP = bw
    • luxresdownP = lu
Ce qui donne : lg0003a08422

D’autres noms de fichier pourraient y être ajoutés ultérieurement
en annexe les résultats de la semaine pour la province de Liège.
Merci de votre aide
 

Pièces jointes

  • lieresdownP.xlsm
    861.3 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Il vaudrait mieux utiliser les abrev de gauche, puisqu'on les retrouvent dans le code :
VB:
Select Case Name
    Case "lieresdownP"
        I = "lg"
    Case "hairesdownP"
        I = "ht"
    Case "namresdownP"
        I = "na"
    Case "brwresdownP"
        I = "bw"
    Case "luxresdownP"
        I = "lu"
    Case "antresdownP"
        I = "an"
    Case "limresdownP"
        I = "lim"
    Case "ovlresdownP"
        I = "ovl"
    Case "wvlresdownP"
        I = "wvl"
    Case "braresdownP"
        I = "bra"
End Select
Ce serait beaucoup plus simple.
Ou mieux mettre directement le sigle en deux trois lettres : lg,ht,na,bw... wvl,bra.
Le code sera plus homogène et plus simplement modifiable.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Quel rapport ?
Remplacer Liège par lg ou Brabant wallon par bra n'impacte rien.
Tout simplement ce sera plus simple pour trouver l' ID.
Dans le code on a :
VB:
Initiale = Initiales(SheetName)
donc on sait que la ligne est lg par ex. Dans la colonne 1 on a la Div.
Avec le tableau il suffit de chercher lg et Div.
Sinon il va falloir faire lg c'est Liège de façon totalement inutile.
Ou vous rajouter une colonne avec l'abrev :
 

Phytoman

XLDnaute Junior
Et donc, comment j'intègre cela dans le script ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Phytoman,
Il vous suffit d'intégrer cette table de 4 colonnes dans le fichier ( dans les colonnes RSTU)
On modifiera la macro pour insérer l' ID en colonne L comme vous le voulez et on poussera les autres données dans les colonnes MNOP. En faisant un truc comme ça :
VB:
For Ligne = 2 To Taille
    Visité = Sheets(SheetName).Range("A:K").Cells(Ligne, 4)
    Visiteur = Sheets(SheetName).Range("A:K").Cells(Ligne, 5)
    Division = Right("00000" & Sheets(SheetName).Range("A:A").Cells(Ligne, 1), 5)
    Division2 = Right("" & Sheets(SheetName).Range("A:A").Cells(Ligne, 1), 5)
    Matricule = Right("00000" & Sheets(SheetName).Range("A:L").Cells(Ligne, 10), 5)
    Matricule2 = Right("00000" & Sheets(SheetName).Range("A:L").Cells(Ligne, 11), 5)
    Sheets("result").Range("A:A").Cells(Ligne, 1) = Visité
    Sheets("result").Range("B:B").Cells(Ligne, 1) = Initiale & Division & Matricule
    
    'CALCUL DE L' ID
    ID = Fonction à dévellopper
    
    Sheets(SheetName).Range("L" & Ligne) = ID
    Sheets(SheetName).Range("M" & Ligne) = Initiale & Division & Matricule
    Sheets(SheetName).Range("N" & Ligne) = Initiale & Division & Matricule2
    Sheets(SheetName).Range("O" & Ligne) = Visité & " " & "Equipe" & " " & Division2
    Sheets(SheetName).Range("P" & Ligne) = Visiteur & " " & "Equipe" & " " & Division2
Next Ligne
 

Phytoman

XLDnaute Junior
OK pour moi.
Je vois "Fonction à développer " ?
C'est à ajouter dans le script
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En PJ la mise à jour.
J'utilise Initiale pour le club et la donnée de la colonne A pour la Division.
A noter que le tableau qui donne les ID doit être impérativement en colonnes RSTU.
Si pas d' ID trouvé, je laisse vide ( ID="")
A vérifier.
 

Pièces jointes

  • generateur-matchs-ID-admin (V3).xlsb
    84.3 KB · Affichages: 7

Phytoman

XLDnaute Junior
Cela fonctionne très bien dans le fichier generateur mais plus dans les fichiers de province
lieresdownP
hairesdownP
namresdownP
brwresdownP
luxresdownP
antresdownP
limresdownP
ovlresdownP
wvlresdownP
braresdownP


 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Phytoman,
Désolé pour le retard.
C'est quoi les fichiers de province ? Je ne connais que le fichier générateur dans lequel la macro marche impeccable.
Cette macro suppose qu'il n'y a qu'une seule feuille dans le fichier, comme vous l'avez demandé.
 

Discussions similaires

Réponses
27
Affichages
971
Réponses
0
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…