Bonjour,
Merci de m'accepter dans votre communauté pour mon premier post.
Voilà, je vous sollicite parce que je n'y connais quasiment rien en VBA.
J'ai un tableau excel qui nous permet, lors d'une réunion hebdomadaire, de gérer et figer l'affectation de nos compagnons sur les différents chantiers en cours pour la semaine suivante.
Les conducteurs de travaux ont accès à ce tableau tout au long de la semaine pour anticiper leurs besoins en personnel.
Grace à un code récupéré sur un forum que j'ai adapté à nos besoins, je peux archiver les données en fin de réunion en cliquant sur le bouton "ARCHIVAGE".
Après avoir cliqué sur ce bouton, l'archivage est bloqué tant que la date en "A1" n'a pas changé.
Tout cela fonctionne très bien tant que je change la date en "A1" manuellement, le problème est que dans cette cellule j'ai mis une formule de rechercheH qui me permet de récupérer une date spécifique dans le tableau et la ça ne marche plus malgré que la formule de recherche fonctionne.
Est ce que quelqu'un pourrait m'aider à résoudre ce problème svp?
D'avance Merci,
Cordialement,
Private Sub ARCHIVAGE_Click()
Dim Derlig As Long
Dim X As Byte
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim Sh3 As Worksheet
Set Sh1 = Worksheets("FEUILLE DE CALCUL")
Set Sh2 = Worksheets("ARCHIVAGE")
Set Sh3 = Worksheets("TABLEAU MO")
If Not Sh3.Range("A6").Text = "Les données de la semaine sont archivées" Then
Derlig = Sh2.Range("A" & Rows.Count).End(xlUp).Row + 1
Sh2.Cells(Derlig, 1) = Sh3.Range("A1").Value
Sh2.Cells(Derlig, 1) = Sh3.Range("A1").Value
Sh2.Cells(Derlig, 1).NumberFormat = "dd/mm/yyyy"
Sh2.Cells(Derlig, 2) = Sh1.Range("Z3").Value
Sh2.Cells(Derlig, 3) = Sh1.Range("Z4").Value
Sh2.Cells(Derlig, 4) = Sh1.Range("Z5").Value
Sh2.Cells(Derlig, 5) = Sh1.Range("Z6").Value
Sh2.Cells(Derlig, 6) = Sh1.Range("Z7").Value
Sh2.Cells(Derlig, 7) = Sh1.Range("Z8").Value
Sh2.Cells(Derlig, 8) = Sh1.Range("Z9").Value
Sh2.Cells(Derlig, 9) = Sh1.Range("Z10").Value
Sh2.Cells(Derlig, 10) = Sh1.Range("Z11").Value
Sh2.Cells(Derlig, 11) = Sh1.Range("Z12").Value
Sh2.Cells(Derlig, 12) = Sh1.Range("Z13").Value
Sh2.Cells(Derlig, 13) = Sh1.Range("Z14").Value
Sh2.Cells(Derlig, 14) = Sh1.Range("Z15").Value
Sh2.Cells(Derlig, 15) = Sh1.Range("Z16").Value
Sh2.Cells(Derlig, 16) = Sh1.Range("Z17").Value
Sh2.Cells(Derlig, 16).NumberFormat = "0.0"
Sh3.Range("A6") = "Les données de la semaine sont archivées"
Else
MsgBox " Ces données sont déjà archivées. "
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then Range("A6").ClearContents
End Sub
Merci de m'accepter dans votre communauté pour mon premier post.
Voilà, je vous sollicite parce que je n'y connais quasiment rien en VBA.
J'ai un tableau excel qui nous permet, lors d'une réunion hebdomadaire, de gérer et figer l'affectation de nos compagnons sur les différents chantiers en cours pour la semaine suivante.
Les conducteurs de travaux ont accès à ce tableau tout au long de la semaine pour anticiper leurs besoins en personnel.
Grace à un code récupéré sur un forum que j'ai adapté à nos besoins, je peux archiver les données en fin de réunion en cliquant sur le bouton "ARCHIVAGE".
Après avoir cliqué sur ce bouton, l'archivage est bloqué tant que la date en "A1" n'a pas changé.
Tout cela fonctionne très bien tant que je change la date en "A1" manuellement, le problème est que dans cette cellule j'ai mis une formule de rechercheH qui me permet de récupérer une date spécifique dans le tableau et la ça ne marche plus malgré que la formule de recherche fonctionne.
Est ce que quelqu'un pourrait m'aider à résoudre ce problème svp?
D'avance Merci,
Cordialement,
Private Sub ARCHIVAGE_Click()
Dim Derlig As Long
Dim X As Byte
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim Sh3 As Worksheet
Set Sh1 = Worksheets("FEUILLE DE CALCUL")
Set Sh2 = Worksheets("ARCHIVAGE")
Set Sh3 = Worksheets("TABLEAU MO")
If Not Sh3.Range("A6").Text = "Les données de la semaine sont archivées" Then
Derlig = Sh2.Range("A" & Rows.Count).End(xlUp).Row + 1
Sh2.Cells(Derlig, 1) = Sh3.Range("A1").Value
Sh2.Cells(Derlig, 1) = Sh3.Range("A1").Value
Sh2.Cells(Derlig, 1).NumberFormat = "dd/mm/yyyy"
Sh2.Cells(Derlig, 2) = Sh1.Range("Z3").Value
Sh2.Cells(Derlig, 3) = Sh1.Range("Z4").Value
Sh2.Cells(Derlig, 4) = Sh1.Range("Z5").Value
Sh2.Cells(Derlig, 5) = Sh1.Range("Z6").Value
Sh2.Cells(Derlig, 6) = Sh1.Range("Z7").Value
Sh2.Cells(Derlig, 7) = Sh1.Range("Z8").Value
Sh2.Cells(Derlig, 8) = Sh1.Range("Z9").Value
Sh2.Cells(Derlig, 9) = Sh1.Range("Z10").Value
Sh2.Cells(Derlig, 10) = Sh1.Range("Z11").Value
Sh2.Cells(Derlig, 11) = Sh1.Range("Z12").Value
Sh2.Cells(Derlig, 12) = Sh1.Range("Z13").Value
Sh2.Cells(Derlig, 13) = Sh1.Range("Z14").Value
Sh2.Cells(Derlig, 14) = Sh1.Range("Z15").Value
Sh2.Cells(Derlig, 15) = Sh1.Range("Z16").Value
Sh2.Cells(Derlig, 16) = Sh1.Range("Z17").Value
Sh2.Cells(Derlig, 16).NumberFormat = "0.0"
Sh3.Range("A6") = "Les données de la semaine sont archivées"
Else
MsgBox " Ces données sont déjà archivées. "
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then Range("A6").ClearContents
End Sub