Probleme Code
Bonjour,
je dispose d'un code qui fonctionne très bien pour récapitulé tout les CA, RTT et RC de tout mon personnel de nuit
Private Sub Worksheet_Activate()
derLn = Range("A" & Rows.Count).End(xlUp).Row
Range("D2:F" & derLn).ClearContents
For i = 1 To 85
For lgn = 2 To derLn
With Sheets(Choose(i, "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre") & " NUIT")
Set cel = .Range("A5:A" & .Range("A" & Rows.Count).End(xlUp).Row).Find(Range("A" & lgn), lookat:=xlWhole)
If Not cel Is Nothing Then
ln = cel.Row
For col = 3 To 33
If .Cells(ln, col).Value = "CA" Then
Cells(lgn, "D").Value = Cells(lgn, "D").Value + 1
ElseIf .Cells(ln, col).Value = "RTT" Then
Cells(lgn, "E").Value = Cells(lgn, "E").Value + 1
ElseIf .Cells(ln, col).Value = "RC" Then
Cells(lgn, "F").Value = Cells(lgn, "F").Value + 1
End If
Next col
End If
End With
Next lgn
Next i
Sachant que la variable "NUIT" peut être "NUIT","HC","HEMOSTASE","OP","SECRETAIRE","IDE","ARC"
Je voudrais savoir s'il faut que je copie ce code x fois en changeant NUIT par les autres variables, ouil y a un autre moyen
Bonjour
Essaie avec 'Select Case'.
Cdlt.
For col = 3 To 33
Select Case .Cells(ln, col).Value
Case "CA"
' code
Case "RTT"
' code
Case "RC"
' code
Case "NUIT", "HC", "HEMOSTASE", "OP", "SECRETAIRE", "IDE", "ARC"
' code
End Select
Next col
Bonjour Jean Eric,
Etant débutante sur VBA, pourais tu s'il te plait m'expliqué ton code et dire qu'elle parti de mon code je dois mettre dans 'code
merci
bonjour,
moi j'y vois plutôt un peu comme ça :
Private Sub Worksheet_Activate()
derLn = Range("A" & Rows.Count).End(xlUp).Row
Range("D2:F" & derLn).ClearContents
For k = 0 To 6
Arr = Split("NUIT HC HEMOSTASE OP SECRETAIRE IDE ARC")
For i = 1 To 12
For lgn = 2 To derLn
With Sheets(Choose(i, "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre") & " " & Arr(k))
Set cel = .Range("A5:A" & .Range("A" & Rows.Count).End(xlUp).Row).Find(Range("A" & lgn), lookat:=xlWhole)
If Not cel Is Nothing Then
Ln = cel.Row
For col = 3 To 33
If .Cells(Ln, col).Value = "CA" Then
Cells(lgn, "D").Value = Cells(lgn, "D").Value + 1
ElseIf .Cells(Ln, col).Value = "RTT" Then
Cells(lgn, "E").Value = Cells(lgn, "E").Value + 1
ElseIf .Cells(Ln, col).Value = "RC" Then
Cells(lgn, "F").Value = Cells(lgn, "F").Value + 1
End If
Next col
End If
End With
Next lgn
Next i
Next
End Sub
Non testé
A+
Bonjour galopin01,
j'ai essayé ta formule mais elle ne fonctionne pas , je te joins mon fichier, l'identifiant est ADMIN et le Mot de passe ADMIN
ps: il s'agit d'une ancienne version de mon fichier c'est pourquoi les onglets ne sont pas identifié correctement
bonjour,
ça c'est pas une réponse :
j'ai essayé ta formule mais elle ne fonctionne pas
Quand je donne un code, en principe il fonctionne, même s'il n'est pas testé.
Après il peut fournir des erreurs. dans ce cas il faut indiquer les erreurs rencontrées.
Quand tu joins un fichier il faut mettre un Vrai fichier : Pas un raccourci, parce qu'avec un raccourci, là... à coup sûr ça ne fonctionne pas !
A+
Autant pour moi, l'erreur vient de moi desolé
Ta formule fonctionne super bien
Merci beaucoup!!!!!!!!