Je ne trouve pas mon erreur
Bonjour, le probleme que l'ajout de la validation ne fonctionne pas, ne se passe rien de méme pour le changement couleur une ligne sur 2 ?
Sub AjouterCommande()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Commandes")
Dim derniereLigne As Long
' Activer la feuille "Commandes"
ws.Activate
' Trouver la dernière ligne avec des données dans la colonne A et ajouter 1 pour la nouvelle ligne
derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
' Insérer une nouvelle ligne
ws.Rows(derniereLigne).Insert Shift:=xlDown
' Ajouter la validation de données directement pour la colonne "Fait"
With ws.Cells(derniereLigne, 6).Validation
.Delete
.Add Type:=xlValidationList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="""Oui,Non"""
.IgnoreBlank = True
.InCellDropdown = True
End With
' Appliquer les bordures et l'alternance des couleurs pour la nouvelle ligne
Dim cell As Range
For Each cell In ws.Range(ws.Cells(derniereLigne, 1), ws.Cells(derniereLigne, 6))
' Bordures
cell.Borders.Weight = xlThin
' Alternance des couleurs de fond pour les lignes
If derniereLigne Mod 2 = 0 Then
cell.Interior.Color = RGB(221, 235, 247) ' Couleur pour lignes paires
Else
cell.Interior.Color = xlNone ' Transparent pour lignes impaires
End If
Next cell
End Sub
Bonjour wartar, le forum,
Un essai ?
Sub AjouterCommande()
Dim ws As Worksheet
Dim derniereLigne As Long
Dim cell As Range
Set ws = ThisWorkbook.Sheets("Commandes")
' Activer la feuille "Commandes"
With ws
.Activate
' Trouver la dernière ligne avec des données dans la colonne A et ajouter 1 pour la nouvelle ligne
derniereLigne = .Range("A" & Rows.Count).End(xlUp).Row + 1
' Insérer une nouvelle ligne
' .Rows(derniereLigne).Insert Shift:=xlDown 'pourquoi insérer une ligne ????
' Ajouter la validation de données directement pour la colonne "Fait"
With .Cells(derniereLigne, 6).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Oui,Non"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
With .Range(.Cells(derniereLigne, 1), .Cells(derniereLigne, 6))
.Borders.Weight = xlThin
.Interior.Color = IIf(derniereLigne Mod 2 = 0, RGB(221, 235, 247), xlNone)
End With
End With
End Sub
Cordialement,