Autres {RÉSOLU] Ajout texte problème de macro

un internaute

XLDnaute Impliqué
Bonjour le forum
Dans la ligne ci-dessous je voudrais ajouter Férié ça bloque et je vois pas pourtant pas compliqué
VB:
If Range("B" & Target.Row) = "Congés" Or Range("B" & Target.Row) = "Repos" Then Range("C" & Target.Row) = Range("B" & Target.Row)

Donc pas mis
Merci pour vos retours
 

patricktoulon

XLDnaute Barbatruc
Bonjour
on peut compiler
on peut ajouter autant de mot que l'on veut entre les guillemets
séparer par un espace pour la lisibilité du développeur si il est amener a en ajouter ou supprimer
VB:
With Range("B" & target.Row)
If InStr(1, "Congés Repos Férié", .Value) Or .Value = "" Then .Offset(, 1) = .Value
End With

et au cas ou il n'y aurait pas de casse à respecter ou quelle ne soit pas respectée dans les cellule de la colonne "B"
Code:
With Range("B" & target.Row)
If InStr(1, LCase("Congés Repos Férié"), LCase(.Value)) Or .Value = "" Then .Offset(, 1) = .Value
End With
 

fanch55

XLDnaute Barbatruc
Bonjour
on peut compiler
on peut ajouter autant de mot que l'on veut entre les guillemets
séparer par un espace pour la lisibilité du développeur si il est amener a en ajouter ou supprimer
VB:
With Range("B" & target.Row)
If InStr(1, "Congés Repos Férié", .Value) Or .Value = "" Then .Offset(, 1) = .Value
End With

et au cas ou il n'y aurait pas de casse à respecter ou quelle ne soit pas respectée dans les cellule de la colonne "B"
Code:
With Range("B" & target.Row)
If InStr(1, LCase("Congés Repos Férié"), LCase(.Value)) Or .Value = "" Then .Offset(, 1) = .Value
End With
Salut Pat,
Et si Murphy a mis "Con" dans la cellule ? ( en tout respect ... ) 😁

S'il faut prévoir une augmentation/réduction des cas sans prolifération des Or, j'aurai plutôt mis :
VB:
For Each M In Array("Congés", "Repos", "Fériés")
    If Range("B" & Target.Row) = M Then
        Range("C" & Target.Row)= Range("B" & Target.Row)
        Exit For
    End If
Next
 

un internaute

XLDnaute Impliqué
Bonjour le forum
fanch55 si tu passe par là ou un autre je voudrais si c'est possible ceci
Tout d'abord lorsque j'ouvre le fichier s'affiche 0 en colonne B
J'ai fait Données validation où j'ai mis Repos Congés 0
Si je me trompe je fait Suppr colonne B la ligne s'efface. Je clique et met Repos par exemple, mais Repos vient aussi colonne C et c'est ce que je veux. Je voudrais lorsque je met 0 avec la souris évidemment Repos s'efface aussi colonne C
J'ai ajouté 0 dans données validation qui se met bien colonne B mais message suivant

1675922767419.png


Je ne sais pas si on peut le faire. A la place de 0 je tape un chiffre par exemple 17.841 toujours ce format 2 chiffres avant le point et 3 chiffres après
Je pense que je n'ai pas été très clair mais j'essaye
Merci pour vos éventuels retours
 
Dernière édition:

un internaute

XLDnaute Impliqué
Re fanch55
Il faut dans Données Validation décocher Message de saisie et alerte d'erreur et on peut taper un chiffre sans problème
Ce que je demande maintenant (pas un problème) mais si ça peut se résoudre ça serait pas mal
Lorsque je met Repos ou Congés dans colonne B s'affiche Repos ou Congés aussi colonne C
Je fait Suppr colonne B si je veux taper un chiffre tout va bien
Mais je peux aussi taper un chiffre à la place de Repos ou Congés, sans faire Suppr ça fonctionne mais Repos ou Congés reste dans colonne C
Possible ou pas?
Merci à vous pour vos éventuels retours
 

fanch55

XLDnaute Barbatruc
A mettre dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range, C As Range
    Set R = Cells(Rows.Count, "B").End(xlUp)
    For Each C In Target
        If Not Intersect(C, Range("B1", R)) Is Nothing Then
            Select Case C
                Case "Repos", "Congés", "Fériés"
                    C.Offset(, 1) = C
                Case Else
            End Select
        End If
    Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 251
Messages
2 086 625
Membres
103 269
dernier inscrit
SamirSEK20