Vba+target.column (résolu)

  • Initiateur de la discussion Initiateur de la discussion eideal44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

eideal44

Guest
Bonjour,

J'aimerais savoir si il existe une autre façon d'écrire le code ci-dessous, en sachant que je souhaite aller jusqu'à la dernière colonne, et que je souhaite indiquer toutes les 2 colonnes la date du jour :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.COLUMN = 30 Or Target.COLUMN = 32 Or Target.COLUMN = 34 Or Target.COLUMN = 36 Or Target.COLUMN = 38 _
Or Target.COLUMN = 40 Or Target.COLUMN = 42 Or Target.COLUMN = 44 Or Target.COLUMN = 46 Then
    If Target.Row >= 3 Then
        Target.Value = Format(Now, "dd/mm/yyyy")
        Target.HorizontalAlignment = xlCenter
    End If
End If
End sub

Merci d'avance pour vos retours,

Eideal44
 
Dernière modification par un modérateur:
Re : Vba+target.column

Bonjour,

Essaie comme ceci :


VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
    Select Case .Column
        Case 30, 32, 34, 36, 38, 40, 42, 44, 46
            If .Row >= 3 Then
                Application.EnableEvents = False
                .Value = Date
                .NumberFormat = "dd/mm/YYYY"
                .HorizontalAlignment = xlCenter
                Application.EnableEvents = True
            End If
    End Select
End With
End Sub

N.B. La fonction "Format" en VBA n'est d'aucune utilité pour formater
une cellule de la feuille de calcul. Tu dois utiliser l'une des 2 propriétés
suivante :
.NumberFormat = "dd/mm/YYYY" 'américain
.NumberFormatLocal = "jj/mm/aaaa" 'unité de la langue d'office...


MichD
 
Re : Vba+target.column

en fait j'ai trouvé, j'ai noté :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim A

For A = 0 To 226 Step 2
If Target.COLUMN = 30 + A And Target.Row >= 3 Then
        Target.Value = Format(Now, "dd/mm/yyyy")
        Target.HorizontalAlignment = xlCenter
        Exit For
End If
Next

End sub

mais merci pour ton retour
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
Réponses
1
Affichages
468
Réponses
3
Affichages
642
Retour