Bonjour à tous,
Donc voici mon problème.
La macro ouvre une Inputbox en demandant le numéro de la semaine sous le format "semaine 2011" (par exemple la première semaine de janvier "01 2011").
Les onglets du classeur correspondent également aux semaines de l'année 2011, donc la réponse à l'Inputbox doit correspondre au nom d'un onglet. Par exemple, si on demande "quelle semaine ?" et qu'on écrit "17 2011", je souhaite que la réponse à l'Inputbox définisse l'onglet correspondant en tant que variable.
La seconde partie du code (après les '''''''''''') fonctionne mais seulement en fonction de Sheets(1). Je souhaite qu'à la place de Sheets(1), le nom de cette feuille soit remplacée par la variable correspondant à la réponse de l'Inputbox.
La feuille 2 est une constante, donc toutes les données copiées proviennent de cette feuille.
La macro doit en fait copier les données en feuille 2 (feuille constante), et les coller dans la feuille variable (nomf).
Je ne peux malheureusement vous transmettre un fichier exemple puisque ces données sont confidentielles. Pour vous faire une idée, la feuille 2 contient des heures en fonction des personnes, et les autres onglets (semaine 2011), sont des planning en fonction de la semaine.
Merci de votre aide,
Bonne journée
Donc voici mon problème.
La macro ouvre une Inputbox en demandant le numéro de la semaine sous le format "semaine 2011" (par exemple la première semaine de janvier "01 2011").
Les onglets du classeur correspondent également aux semaines de l'année 2011, donc la réponse à l'Inputbox doit correspondre au nom d'un onglet. Par exemple, si on demande "quelle semaine ?" et qu'on écrit "17 2011", je souhaite que la réponse à l'Inputbox définisse l'onglet correspondant en tant que variable.
La seconde partie du code (après les '''''''''''') fonctionne mais seulement en fonction de Sheets(1). Je souhaite qu'à la place de Sheets(1), le nom de cette feuille soit remplacée par la variable correspondant à la réponse de l'Inputbox.
La feuille 2 est une constante, donc toutes les données copiées proviennent de cette feuille.
La macro doit en fait copier les données en feuille 2 (feuille constante), et les coller dans la feuille variable (nomf).
Code:
nomf = InputBox("quelle semaine ?")
If nomf = "" Then
MsgBox "Saisie de la semaine impérative! Recommencez...", vbCritical
Exit Sub
End If
For Each wkSheet In ActiveWorkbook.Worksheets
If wkSheet.Name = nomf Then
'Là je souhaite que la feuille "nomf" soit définit comme une variable et qu'ensuite je puisse la sélectionner pour y coller les données.
End If
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim datejour As Range 'Colle la valeur des heures travaillées si la date et le nom correspondent.
Dim datej As Range
Dim X As Integer
Dim Nom As String, i As Long, j As Long
Sheets("nomf").Select 'A modifier en fonction de la variable
i = 4 'Démarre en ligne 4 de la feuille "nomf"
With Sheets(2)
Do While Cells(i, 2) <> "FIN" 'Exécute jusqu'à trouver la ligne FIN (à modifier)
Nom = Cells(i, 2) 'Définit nom colonne B de la feuille 1
For j = 4 To .Range("B200").End(xlUp).Row 'Démarre en ligne 4 de la feuille 2
If Nom = .Cells(j, 2) Then 'Si le nom de la feuille 1 = nom de la feuille 2
Set datejour = Worksheets("2").Cells(j, 5) 'Cherche la date du jour en feuille 2
With Worksheets("2").Range("A2:AL2")
Set datej = .Find(datejour, LookIn:=xlFormulas) 'Trouve la date correspondante en feuille "nomf"
X = datej.Column 'Définit la variable X
End With
Sheets(nomf).Cells(i, X + 3).Value = Sheets(2).Cells(j, 17).Value 'Colle les heures totales travaillées
Cells(i, X + 3).Interior.ColorIndex = 6 'Colore en jaune
Cells(i, X + 3).Select
Exit For
End If
Next
i = i + 1
Loop
End With
Je ne peux malheureusement vous transmettre un fichier exemple puisque ces données sont confidentielles. Pour vous faire une idée, la feuille 2 contient des heures en fonction des personnes, et les autres onglets (semaine 2011), sont des planning en fonction de la semaine.
Merci de votre aide,
Bonne journée