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

Résolu
wuhrlinanthony Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
wuhrlinanthony Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   149
 
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   Statut Membre Dernière intervention  
 
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