Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Vba - Nom ambigu detecté

Lazz

XLDnaute Junior
Bonjour,

Je ne suis pas du tout caler en VBA mais j'ai trouver un code qui fais ce que je recherche et qui fonctionne bien.
J'aimerai maintenant reproduire le même programme mais pour des plages différentes. J'ai copié coller le programme en changeant les plage de cellule mais cela me met "nom ambigu détecté" et je ne sais pas quoi changer pour que cela fonctionne.

je vous met une photos pour illustrer ce que je raconte

pouvez vous m'aidez ?
merci
 
Solution
bonjour

Peut etre comme cela : pas testé


VB:
Public Sub Worksheet_change(ByVal Target As Range)
Dim rng2 As Range
If Target.Column = 8 Then
    If Target.Value = "oui" Then
        Set rng2 = Range(Cells(Target.Row, Target.Column + 8), Cells(Target.Row, Target.Column + 8))
        rng2.Activate
        Do While (IsEmpty(rng2.Value))
            MsgBox ("Veuillez renseigner cette cellule")
            rng2.Value = InputBox("oui ou non ?")
        Loop
        End If
 ElseIf Target.Column = 16 Then
    If Target.Value = "" Then
    Set rng2 = Range(Cells(Target.Row, Target.Column + 1), Cells(Target.Row, Target.Column + 1))
    rng2.Activate
        Do While (IsEmpty(rng2.Value))
            MsgBox ("Veuillez renseigner cette cellule")...

patricktoulon

XLDnaute Barbatruc
re
a perfectionner
exemple pour colonnes A , C et E
dans le module de la feuille concerné
VB:
Dim nextcell As Range
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Select Case Target.Column

    Case 1
        If Target <> "" Then Set nextcell = Target.Offset(, 2)

    Case 3
        If Target.Offset(, -2) = "" Then Set nextcell = Target.Offset(, -2)
        If Target <> "" Then Set nextcell = Target.Offset(, 2)

    Case 5
        If Target.Offset(, -4) = "" Then Set nextcell = Target.Offset(, -4):  nextcell.Activate: Exit Sub
        If Target.Offset(, -2) = "" Then Set nextcell = Target.Offset(, -2)


    Case Else
    End Select
    If Not nextcell Is Nothing Then nextcell.Activate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
   If "35" Like "*" & Target.Column & "*" and not nextcell is nothing Then If Target.Offset(, -2).Row = nextcell.Row Then Exit Sub
    If Not nextcell Is Nothing Then nextcell.Activate
End Sub
 

Discussions similaires

Réponses
27
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…