VBA Aide pour Affichage cellules
Bonjour à tous !
Tout d'abord merci de m'accueillir sur votre site, que je trouve très bien construit !
Aujourd'hui je poste ce premier message car je suis un peu débutant dans le VBA et je découvre au fur et à mesure ;)
J'ai écrit avec un ami ce code qui me permet de faire double clic sur l'une des cases de la colonne T et d'afficher la date actuelle en même temps que le système affiche l'heure actuelle en colonne X. j'ai également prévu le fait qu'on puisse écrire la date à la main et que l'heure actuelle s'affiche également.
Voici un screen du fichier et du code
mon soucis c'est que j'aimerais que lorsque j'étire ma date en incrémentation par exemple de T27 à T40, que l'heure soit aussi affiché en même temps de X27 à X40.
De plus j'ai constaté qu'à l'heure actuel, mon code présente un beugue : Lorsque je supprime la date en T, cela ne supprime pas l'heure mais au contraire il la rajoute sur la ligne au dessus ?
Je vous remercie par avance pour votre aide et vous souhaite une bonne soirée !
Amicalement
Salut et soyez le bienvenu
essaye de poster les codes et pas les images des codes
Bonjour Quentin et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment
- Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
Merci de votre participation
Cordialement
Bonjour,
Pas de soucis je vais aller me présenter sur le lien que vous avez mis, j'avais cependant déjà lu la charte :)
Et voici pour Amir le code en texte :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Teste si on double-clique dans la zone spécifié
If Not Application.Intersect(Target, Range("S2:S99999")) Is Nothing Then
'Si la cellule est vide on y inscrit le chiffre correxpondant à sa couleur
If Target = "" Then
ActiveCell.Value = Format(Now(), "mm/dd/yyyy")
End If
End If
'Teste si on double-clique dans la zone spécifié
If Not Application.Intersect(Target, Range("T2:T99999")) Is Nothing Then
'Si la cellule est vide on y inscrit le chiffre correxpondant à sa couleur
If Target = "" Then
ActiveCell.Value = Format(Now(), "mm/dd/yyyy")
X = ActiveCell.Address
Y = Right(X, 2)
Z = "X"
a = "X" & Y
Range(a).Select
ActiveCell.Value = Format(Now(), "hh:mm")
End If
End If
X = ActiveCell.Address
Y = Right(X, 2)
Z = "U"
a = "U" & Y
B = Range(a).Select
nb_cara = Len(Range(a))
If nb_cara = 4 Then
a = "T" & Y
B = Range(a)
D = "O" & Y
E = Range(D)
F = B - E
If F > 0 Then
MsgBox "ATTENTION DATE DE RESPECT NE PEUT PAS ETRE égale à OUI "
ActiveCell.Value = ""
End If
If F = 0 Then
a = "X" & Y
B = Range(a)
D = "P" & Y
E = Range(D)
F = B - E
If F > 0.208 Then
MsgBox "ATTENTION DATE DE RESPECT NE PEUT PAS ETRE égale à OUI "
ActiveCell.Value = ""
End If
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
X = ActiveCell.Address
YA = Right(X, 2)
a = "U" & YA
B = Range(a)
If Range(X) <> "" Then
If B <> "" Then
If Target.Address = Target.Address Then
Worksheet_BeforeDoubleClick ByVal Target, True
End If
End If
End If
X = ActiveCell.Address
If Range(X) = "" Then
Y = Left(X, 2)
If Y = "$T" Then
Y = Left(Right(X, 2), 2)
Z = "X"
a = "X" & Y - 1
Range(a).Select
If YA = Y Then
ActiveCell.Value = Format(Now(), "hh:mm")
End If
End If
End If
End Sub
Sub Compareur()
X = ActiveCell.Address
Y = Right(X, 2)
Z = "U"
a = "U" & Y
B = Range(a).Select
nb_cara = Len(Range(a))
If nb_cara = 4 Then
a = "T" & Y
B = Range(a)
D = "O" & Y
E = Range(D)
F = B - E
If F > 0 Then
MsgBox "ATTENTION DATE DE RESPECT NE PEUT PAS ETRE égale à OUI "
ActiveCell.Value = ""
End If
If F = 0 Then
a = "X" & Y
B = Range(a)
D = "P" & Y
E = Range(D)
F = B - E
If F > 0.208 Then
MsgBox "ATTENTION DATE DE RESPECT NE PEUT PAS ETRE égale à OUI "
ActiveCell.Value = ""
End If
End If
End If
End Sub
Edit modo : merci de mettre le code entre balises avec le bouton </>
Bonjour Quentin
Pour le problème ci-dessous
mon soucis c'est que j'aimerais que lorsque j'étire ma date en incrémentation par exemple de T27 à T40, que l'heure soit aussi affiché en même temps de X27 à X40.
Le code suivant est à mettre dans l'évènement Change
Private Sub Worksheet_Change(ByVal Target As Range)
' Inscrire automatiquement les modification de T dans X
If Not Application.Intersect(Target, Range("T2:T99999")) Is Nothing Then
Application.EnableEvents = False
For Each cel In Target
Range("X" & cel.Row).Value = Range("T" & cel.Row).Value
Next cel
Application.EnableEvents = True
End If
....
Pour le problème ci-dessous
De plus j'ai constaté qu'à l'heure actuel, mon code présente un beugue : Lorsque je supprime la date en T, cela ne supprime pas l'heure mais au contraire il la rajoute sur la ligne au dessus ?
Le code ne "beugue" pas il a été développé comme ça
'Teste si on double-clique dans la zone spécifié
If Not Application.Intersect(Target, Range("T2:T99999")) Is Nothing Then
'Si la cellule est vide on y inscrit le chiffre correxpondant à sa couleur
If Target = "" Then
ActiveCell.Value = Format(Now(), "mm/dd/yyyy")
X = ActiveCell.Address
Y = Right(X, 2)
Z = "X"
a = "X" & Y
Range(a).Select
ActiveCell.Value = Format(Now(), "hh:mm")
End If
End If
A+
Bonjour @BrunoM45
Je te remercie pour ton aide !
J'ai copié donc le code et ca marche ! L'incrémentation fonctionne !
C'est juste que ce n'est pas la date dans la colonne X qui doit se mettre mais l'heure actuelle ahah ! et dans T la date ;)
En tout cas c'est pas mal :)