Listes déroulantes avec réponses multiples PROBLEME !!

Résolu/Fermé
wuhrlinanthony Messages postés 52 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 5 juillet 2017 - 1 sept. 2015 à 10:17
wuhrlinanthony Messages postés 52 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 5 juillet 2017 - 1 sept. 2015 à 11:24
Bonjour,

Je suis entrain de créer un questionnaire et pour que celui-ci soit plus rapide a répondre et parait moins long sur la tablette, j'ai créer des listes déroulantes de réponses a choisir.

Une première colonne de listes déroulantes où l'on peut choisir une réponses et qui ensuite engendre une deuxième colonne de listes déroulantes où là le candidats peut répondre jusqu'à 3 réponses maximum.
Le code que j'ai créer fonctionne parfaitement pour les colonnes de liste déroulantes mais il y a 4 listes déroulantes qui ne suivent pas le code et je comprend d'où viens l'erreur puisque toutes les autres fonctionnent.

Pouvez-vous m'aider ? Je vous joins le fichier , car c'est assez compliquer à expliquer.

Fichier : http://www.cjoint.com/c/EIbiqMc71TU

Il y a 4 listes déroulantes en rouge qui ne fonctionne pas comme les autres.

Code:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler

Dim rngDV As Range
Dim lRow As Long
Dim lCol As Long
Dim iCol As Integer


lCol = Target.Column 'column with data validation cell

If Target.Count > 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 3
If Target.Offset(0, 1).Value = "" Then
lRow = Target.row
Else
lRow = Cells(Rows.Count, lCol + 1).End(xlUp).row + 1
End If
Cells(lRow + 1, lCol).Value = Target.Value
Target.ClearContents
End Select

If Target.Column = 5 Then
If Target.Value = "" Then GoTo exitHandler
If Target.Validation.Value = True Then
iCol = Cells(Target.row, Columns.Count).End(xlToLeft).Column + 1
Cells(Target.row, iCol).Value = Target.Value
Else
Target.Activate
End If
End If
End If
exitHandler:
Application.EnableEvents = True


End Sub

Merci

1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
1 sept. 2015 à 11:16
Bonjour,

Le problème est que sur la même ligne que la liste de validation tu as du texte dans une colonne plus à droite ; c'est ça qui convient pas :
If Target.Validation.Value = True Then
iCol = Cells(Target.row, Columns.Count).End(xlToLeft).Column + 1
Cells(Target.row, iCol).Value = Target.Value
Else

C'est curieux que sur un questionnaire d'ergonomie, on utilise un outil aussi peu ergonomique. Pourquoi pas un formulaire web ou - à défaut - un formulaire Excel (UserForm) ?

A+
0
wuhrlinanthony Messages postés 52 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 5 juillet 2017
1 sept. 2015 à 11:24
Merci beaucoup , c'est tellement bête en plus quand tu vois l'erreur ^^ . J'aimerais bien créer un formulaire sur internet mais je suis bloquer part certaine directive. Et j'ai commencer le VBA il y a 1 mois donc j'essaye de rendre cela plus facile mais c'est encore pas mal de boulot. En tout cas merci beaucoup. Je vais voir pour le UserForm.
0