• Initiateur de la discussion Initiateur de la discussion netten
  • Date de début Date de début

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 !

N

netten

Guest
Bonjour à toutes et tous,

J'ai ce code ci-dessous et vba m'annonce un code 400, d'une part, est-ce que ces lignes vous paraissent corectes ? et d'autre part est-ce que l'erreur 400 est justifiée ?

Il me semble que l'erreur 400 concerne la msgbox

Code:
Sub Nouvelorgane()

Select Case MsgBox("Souhaitez vous rajouter un organe ?", vbOKCancel, "Validation")
Case vbOK

Dim col1 As Byte 'déclare la variable col1 (COLonne)
Dim col2 As Byte 'déclare la variable col2 (COLonne)
Dim col3 As Byte 'déclare la variable col3 (COLonne)
Dim col4 As Byte 'déclare la variable col4 (COLonne)
Dim col5 As Byte 'déclare la variable col5 (COLonne)
Dim col6 As Byte 'déclare la variable col6 (COLonne)


col1 = Rows(1633).Find(Range("IM29").Value, , xlValues, xlWhole).Column
        Cells(1644, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
        Range("IL25").ClearContents

        col2 = Rows(1648).Find(Range("IM29").Value, , xlValues, xlWhole).Column
                Cells(1659, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
                Range("IL25").ClearContents
                
                col3 = Rows(1663).Find(Range("IM29").Value, , xlValues, xlWhole).Column
                        Cells(1674, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
                        Range("IL25").ClearContents

                        col4 = Rows(1678).Find(Range("IM29").Value, , xlValues, xlWhole).Column
                                Cells(1689, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
                                Range("IL25").ClearContents

                               col5 = Rows(1693).Find(Range("IM29").Value, , xlValues, xlWhole).Column
                                        Cells(1704, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
                                        Range("IL25").ClearContents
 
                                         col6 = Rows(1709).Find(Range("IM29").Value, , xlValues, xlWhole).Column
                                                Cells(1720, col).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
                                                Range("IL25").ClearContents

Case vbCancel

Range("IL25").Select

End Select

End Sub

Je vous remercie beaucoup de votre coup d'oeil sur la question, bien cordialement, Eric 🙂
 
Re : code erroné ?

En appuyant sur F8 plusieur fos de suite, je remarque que le code passe de :

Code:
Sub Nouvelorgane()

Select Case MsgBox("Souhaitez vous rajouter un organe ?", vbOKCancel, "Validation")
Case vbOK

Dim col1 As Range, col2 As Range, col3 As Range, col4 As Range, col5 As Range, col6 As Range


Set col1 = Rows(1633).Find(Range("IM29").Value, , xlValues, xlWhole) '
    If Not col1 Is Nothing Then

...
...
...
...
...



End If

Case vbCancel

Range("IL25").Select

End Select

End Sub


Je lui ai demandé d'inscrire une donnée qui suit la variable col2, mais en fait, de setcol2 jusqu'à la fin, tout est court circuité je suppose par cette petite phrase : "If Not col1 Is Nothing Then". Ou bien c'ets peut être le end if de la fin ? Mais dans ce cas, ça m'indique une erreur de compilation "case sans select case"
 
Dernière modification par un modérateur:
Re : code erroné ?

Modifie ainsi :

En appuyant sur F8 plusieur fos de suite, je remarque que le code passe de :

Code:
Sub Nouvelorgane()

Select Case MsgBox("Souhaitez vous rajouter un organe ?", vbOKCancel, "Validation")
Case vbOK

Dim col1 As Range, col2 As Range, col3 As Range, col4 As Range, col5 As Range, col6 As Range


Set col1 = Rows(1633).Find(Range("IM29").Value, , xlValues, xlWhole) '
    If Not col1 Is Nothing Then

[B][COLOR="Red"]'N'oublie pas les instructions ici[/COLOR][/B]
[COLOR="red"][B]    End If[/B][/COLOR]
...
...
...
...
...





Case vbCancel

Range("IL25").Select

End Select

End Sub
 
Re : code erroné ?

Ah !! Une indication peut être importante, les données dans les colonnes raw1633, raw1648, raw..... sont des valeurs qui a l'origine sont en dans une colonne que j'utilise pour ma liste déroulante en IM29,

Les valeurs sont ensuite transposées en lignes, et comme il n'y avait pas assez de colonne sur excel2003, j'ai du faire plusieur tableaux pour mettre toutes mes valeurs en lignes. D'où la présence des ces plusieurs variables.


Mais je ne pense pas que ça ait de l'importance.
 
Re : code erroné ?

hEY !!!!! ca marche et le mieux c'est que je suis un schcaboushgnouff, car j'ai homis de mettre un end if après la fonction de ma variable col1.


Bon, ça marche, le code final fonctionnel :

Code:
Sub Nouvelorgane()

Select Case MsgBox("Souhaitez vous rajouter un organe ?", vbOKCancel, "Validation")

Case vbOK

Dim col1 As Range, col2 As Range, col3 As Range, col4 As Range, col5 As Range, col6 As Range


        Set col1 = Rows(1633).Find(Range("IM29").Value, , xlValues, xlWhole) '
        
If Not col1 Is Nothing Then
Cells(1644, col1.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If
    

            Set col2 = Rows(1648).Find(Range("IM29").Value, , xlValues, xlWhole) '

If Not col2 Is Nothing Then
Cells(1659, col2.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If
                
            Set col3 = Rows(1663).Find(Range("IM29").Value, , xlValues, xlWhole) '
            
If Not col3 Is Nothing Then
Cells(1674, col3.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If

                Set col4 = Rows(1678).Find(Range("IM29").Value, , xlValues, xlWhole) '
                
If Not col4 Is Nothing Then
Cells(1689, col4.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If

                Set col5 = Rows(1693).Find(Range("IM29").Value, , xlValues, xlWhole) '
                
If Not col5 Is Nothing Then
Cells(1704, col5.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If
 
                Set col6 = Rows(1709).Find(Range("IM29").Value, , xlValues, xlWhole) '
                
If Not col6 Is Nothing Then
Cells(1720, col6.Column).End(xlUp).Offset(1, 0).Value = Range("IL25").Value
Range("IL25").ClearContents

End If


Case vbCancel

Range("IL25").Select

End Select


Pierrot, un très grand merci 😉 Tu serais Lillois, je t'aurais offert une bière de chez nous, merci 🙂
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
906
Réponses
3
Affichages
921
Réponses
2
Affichages
768
Réponses
16
Affichages
2 K
Retour