Remplacer une valeur en fonction de l'intitulé

babas

XLDnaute Junior
Bonjour à tous,

Je me tourne vers vous car j'ai un petit souci…

J'ai un classeur Excel avec dessus une feuille sur laquelle je rentre des données, à savoir un intitulé et un nombre d'heures réalisées pour cet intitulé ce qui calcul les heures restantes.

Sur une autre feuille j'ai un tableau qui reprend chaque intitulé avec le nombre d'heure total autorisée et le nombre d'heures restantes.


Ce que je souhaiterai c'est que lorsque je clique sur un bouton valider, le nombre d'heures restantes qui vient d'être calculé vienne remplacer les heures restantes sur l'autre feuille et en fonction de l'intitulé…

Je ne parvient pas à écrire ma macro…


Je ne sais pas si je me suis fait comprendre, j'essaierai de mettre mon classeur demain.

Merci d'avance à ceux qui pourront déjà 'aider et merci de m'avoir lu.
 

pyfux

XLDnaute Occasionnel
Re : Remplacer une valeur en fonction de l'intitulé

Bonjour babas,

Cette macro VBA de copie ne devrait pas nous (le forum) poser de problème...
Mais nous avons besoin que tu nous envoi un fichier anonymisé pour que l'on puisse code dans le concret.
En effet le code VBA est intimement lié à ta façon de stocker tes données dans tes feuilles.

Sorry
 

babas

XLDnaute Junior
Re : Remplacer une valeur en fonction de l'intitulé

Bonjour à tous,

Voici un exemple de mon classeur.

Je réexplique. Je souhaiterai que en fonction de l'activité choisie (case cochée ou mot apparaissant dans résultat sur la feuille "saumon"), le nombre d'heure totale restant pour cette activité vienne remplacer l'ancienne heure restante sur la feuille "données" dans le tableau à partir de la ligne 77.


N'hésitez pas si vous ne comprenez pas…

Merci d'avance
 

Pièces jointes

  • exemple_exld.xlsm
    49.3 KB · Affichages: 34
  • exemple_exld.xlsm
    49.3 KB · Affichages: 32
  • exemple_exld.xlsm
    49.3 KB · Affichages: 29

pyfux

XLDnaute Occasionnel
Re : Remplacer une valeur en fonction de l'intitulé

Bonjour,

Il me semble que votre structure est un peu compliqué et que vous gagneriez à simplifier et surtout éviter d'avoir les info un peu de partout.

Quoi qu'il en soit, pour répondre à votre besoin vous trouverez le code ci dessous (à compléter pour tous les cas):

Code:
Private Sub btValider_Click()

Dim sActivite As String
Dim bFound As Boolean

'On définie le nom de l'activité en fonction de la checkbox
Select Case True
    Case Me.CheckBox1
        sActivite = "Ent"
        
    Case Me.CheckBox2
        sActivite = "semaine"
    
    Case Me.CheckBox3
    Case Me.CheckBox4
    Case Me.CheckBox5
    Case Me.CheckBox6
        sActivite = "For"
    Case Me.CheckBox7
    Case Me.CheckBox8
    Case Me.CheckBox9
    Case Me.CheckBox10
    Case Else
        Call MsgBox("Cochez une activité!")
        Exit Sub
End Select

Dim c As Range

For Each c In Worksheets("Données").Range("A78:A" + CStr(Worksheets("Données").Range("A78").End(xlDown).Row))
    If c.Value = sActivite Then
        Worksheets("Données").Cells(c.Row, c.Column + 2).Value = Worksheets("Données").Cells(c.Row, c.Column + 2).Value - Me.Cells(37, 4).Value
        bFound = True
        Exit For
    End If
Next

If Not bFound Then
    Call MsgBox("Temps non décrémentés, validation annulé!")
    Exit Sub
End If


'On efface les données
Range("A24:C36").Select
Selection.ClearContents

End Sub

La pièce jointe contient les données.

Désolé, peu de temps pour répondre..

Pyfux
 

Pièces jointes

  • exemple_exld.xlsm
    58.7 KB · Affichages: 31
  • exemple_exld.xlsm
    58.7 KB · Affichages: 25
  • exemple_exld.xlsm
    58.7 KB · Affichages: 31

Discussions similaires

Réponses
15
Affichages
423
Réponses
5
Affichages
529
Réponses
4
Affichages
297
Réponses
9
Affichages
419

Statistiques des forums

Discussions
312 287
Messages
2 086 825
Membres
103 396
dernier inscrit
Laurent34