XL 2016 Remplacement valeur cellule

pierrof

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite suivre le nombre d'heure de formation de "joueurs", pour cela je dispose d'un tableau de suivi de formations.
Sur ce tableau j'aimerais que la valeur "x" indiquant que le joueur à participé à la formation, prenne la valeur en heure de la formation, or cette valeur et dans le texte de l'en-tête de la colonne et peut être entre parenthèse ou pas. le tableau peux être de dimensions différentes...

Je laisse un fichier exemple pour plus de clarté.

Merci d'avance pour votre aide.

Cordialement
 

Pièces jointes

  • Formation_T0.xlsm
    16.8 KB · Affichages: 15

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pierrof,
Un essai en PJ avec :
VB:
Private Sub CommandButton1_Click()
    Dim DL%, L%, C%
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row
    C = 3
    While Cells(5, C) <> ""
        tablo = Split(Cells(5, C), " ")
        For L = 6 To Range("B65500").End(xlUp).Row
            If Cells(L, C) = "x" Then
                Cells(L, C) = Replace(tablo(UBound(tablo) - 1) & " H", "(", "")
            End If
        Next L
        C = C + 1
    Wend
End Sub
 

Pièces jointes

  • Formation_T0.xlsm
    23.4 KB · Affichages: 5

pierrof

XLDnaute Occasionnel
Bonjour à tous,

Merci de vos retours ça fonctionne correctement toutes vos propositions.

@Robert, oui j'aurais aimé avoir des tableaux "propre" mais je n'ai pas eu de chance....:)

J'en profite pour vous demander comment peut-on faire pour lancer la procédure en VBA sur toutes feuilles du classeur?

Merci encore

Cordialement
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Pour tous les onglets.
1. remplace le code du bouton par celui-ci :

VB:
Private Sub CommandButton1_Click()
Module1.Macro1
End Sub
2. Dans le modue standard Module1 la procédure :
Code:
Sub Macro1()
Dim DL%, L%, C%
Dim O As Worksheet
Dim tablo As Variant

Application.ScreenUpdating = False
For Each O In Sheets
    DL = O.Range("B65500").End(xlUp).Row
    C = 3
    While O.Cells(5, C) <> ""
        tablo = Split(O.Cells(5, C), " ")
        For L = 6 To O.Range("B65500").End(xlUp).Row
            If O.Cells(L, C) = "x" Then
                O.Cells(L, C) = Replace(tablo(UBound(tablo) - 1) & " H", "(", "")
            End If
        Next L
        C = C + 1
    Wend
Next O
End Sub
 

Discussions similaires

Réponses
6
Affichages
105

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 038
Membres
102 763
dernier inscrit
NICO26