Bonsoir à tous,
Depuis la cellule G5 jusqu'à la cellule DM5 j'ai des cellules fusionnées par paires (G5:G6) = lundi 6 Août 2012, (G7:G8) mardi 7..... etc
voilà la macro que j'ai bricoler avec mes maigres connaissances
Je sais que mon code n'est pas chouette mais il devrait être fonctionnel si j'arrivais à lire la date
Merci pour votre aide car là je bute vraiment
Cordialement
Didier
Depuis la cellule G5 jusqu'à la cellule DM5 j'ai des cellules fusionnées par paires (G5:G6) = lundi 6 Août 2012, (G7:G8) mardi 7..... etc
voilà la macro que j'ai bricoler avec mes maigres connaissances
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Dim Ligne
Dim Colonne
Dim A As Variant
If Not Intersect(Target, Range("D5:D36")) Is Nothing Then
'Je lance l'userform
UserForm1.Show
'Si la première colonne de mon tableau de g6 à g36 est vide j'impute la date du DTPicker21 qui est sur la feuille "Programme des travaux" au DTPicker1 sur L'UserForm1
If Application.WorksheetFunction.Sum(Range("G6:G36")) = 0 Then
UserForm1.DTPicker1.Value = Me.DTPicker21.Value
UserForm1.Durée.Value = Range("D36").End(xlUp).Offset(0, 1).Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
End If
Ligne = 5
If Application.WorksheetFunction.Sum(Range("G6:G36")) <> 0 Then
'Durée = combobox sur l'userform1 et jusque là ça fonctionne très bien
UserForm1.Durée.Value = Range("D36").End(xlUp).Offset(0, 1).Value
Je fais de la gymnastique avec les offset de façon à me positionner sur ma dernière entrée dans le tableau, puis remonter sur la ligne afin d'y lire la date
Range("D36").End(xlUp).Offset(-1, 106).Select
'Je trouve bien le N° de colonne
Colonne = ActiveCell.End(xlToLeft).Column
'mais à partir d'ici plus rien ne fonctionne, pas moyen de sélectionner la cellule correspondante
ActiveCell(Ligne, Colonne).Offset(1, 0).Select
'Pas moyen de récupérer la date
A = ActiveCell(Ligne, Colonne).Value
'donc cette condition ne s'exécute jamais
If A <> 0 Then
UserForm1.DTPicker1.Value = ActiveCell(Ligne, Colonne).Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
End If
'Et celle-ci toujour puisque je n'ai pas de date dans A, mais bien sur il y a erreur puisque ça lie soit la deuxième cellule de la fusion ou il y a rien soit comme en haut je n'arrive pas à lire la date
If A = 0 Then
UserForm1.DTPicker1.Value = ActiveCell(Ligne, Colonne +1).Value
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Exit Sub
ETIQUETTE: MsgBox "Changer la date manuellement & vbokonly"
End Sub
Je sais que mon code n'est pas chouette mais il devrait être fonctionnel si j'arrivais à lire la date
Merci pour votre aide car là je bute vraiment
Cordialement
Didier