Microsoft 365 Vba - Nom ambigu detecté

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 !

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
1637748670370.png

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")...
Bonjour,
Tu as deux fois la même procédure !

Je t'invite à les fusionner dans la même.

Je l'aurai bien fait pour toi mais je m'etrises pas bien Photoshop !
oui mais je ne sais pas comment les fusionner.
je t'envoie le programme:

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
End If
End Sub

Public Sub Worksheet_change(ByVal Target As Range)
Dim rng2 As Range

If 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")
rng2.Value = InputBox("oui ou non ?")
Loop
End If
End If
End Sub
 
Re

Que veux tu faire exactement avec ton fichier ?
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
End If
If 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")
            rng2.Value = InputBox("oui ou non ?")
        Loop
    End If
End if
End Sub

Mais il y a surement plus simple en fonction de ce que tu veux faire
Un fichier serait le bienvenu

@Phil69970
 
Dernière édition:
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")
            rng2.Value = InputBox("oui ou non ?")
        Loop
    End If
        
End If
End Sub
 
Re

Que veux tu faire exactement avec ton fichier ?

@Phil69970
J'aimerai que quand je rempli une cellule A par exemple alors je suis obligé de remplir la cellule C (Premier programme qui fonctionne très bien) mais du coup je voulais rajouter autre chose (bien sure c'est pas si simple)
Je voulais que quand C est renseigné alors je suis obligé de renseigné D.
c'est pour cela que j'ai dupliquer le même programme avec des numéros de colonne différent
 
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
 [COLOR=rgb(26, 188, 156)]ElseIf Target.Column = 16 Then
    If Target.Value = "" Then[/COLOR]
    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")
            rng2.Value = InputBox("oui ou non ?")
        Loop
    End If
       
End If
End Sub
Bonjour, OK ça fonctionne mais que quand la colonne 16 est vide
je pensais que
If Target.Value = "" Then voulais dire "quand la case est rempli alors ..."
mais apparemment non
 
- 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

Discussions similaires

Réponses
7
Affichages
343
  • Question Question
Réponses
7
Affichages
128
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
795
Retour