Probleme avec un bouton

Bonjour,

SVP, j'ai un ptit probleme (j'espere qu'il est ptit), en fait j'ai un bouton dans une feuille, quand je clique dessus il fait le traitement super bien, mais j'ai besoin de deplacer ce bouton a une autre feuille dans le meme classeur, quand j'ai fais cela, j'ai une erreur 400, qui ne signale pas ou se trouve le probleme ni la possibilité de debugage.

est ce que vous pouvez me dire c du a quoi?

Merci

Bonjour,

Faudrait voir le classeur, ou au moins le code associé au bouton.

Tu dois avoir des soucis avec des références implicites à la feuille active, donc quand tu changes de feuille le code ne va plus chercher les infos au bon endroit...

voila le code:

Sub Renseigner()

Dim DerLig As Long, Lig As Long

With Sheets("Suivi des demandes")

'Récupérer la dernière ligne de la feuille
DerLig = .Range("A" & Rows.Count).End(xlUp).Row

    'Pour chaque ligne
    For Lig = 3 To DerLig

    .Range("B" & Lig).ClearComments
    .Range("AI" & Lig).Interior.ColorIndex = 2
    .Range("B" & Lig).Font.ColorIndex = 1
    .Range("B" & Lig).Font.Bold = False

    'Si la valeur de la Cellule de la colonne "F" est EVO et la cellule du devis est vide
        If .Range("F" & Lig).Value = "Evo" And .Range("AG" & Lig) = "" Then

            .Range("A" & Lig).ClearComments

            'Alors, selon le cas de la valeur de la cellule de la même ligne, colonne T
            Select Case .Range("T" & Lig).Value

                'Si l'on a l'une des valeurs suivantes : "CHK", "CHK-OK", "ANA", "ANU", "ATT"
                Case "CHK", "CHK OK", "ANA", "ANU", "ATT", "CHK-KO", "QR"
                    'Il n'y a rien à faire

                'Sinon
                Case Else
                    .Range("A" & Lig).Select
                    .Range("A" & Lig).AddComment
                    .Range("A" & Lig).Comment.Text Text:="Le Devis de developpement doit etre renseigner"

                    'Colorer la Cellule correspondante dans la colonne "A" ET "AG"
                    '.Range("A" & Lig).Interior.ColorIndex = 8
                    .Range("AG" & Lig).Interior.ColorIndex = 8

            End Select

        'Si la Cellule de la colonne F n'équivaut pas EVO
        Else
        'supprimer le commentaire existant et remettre les fonds à blanc
        '.Range("A" & Lig).Interior.ColorIndex = 2
        .Range("AG" & Lig).Interior.ColorIndex = 2
        .Range("A" & Lig).ClearComments

        End If

        Select Case .Range("T" & Lig).Value

            'Si on a l'une des valeurs suivantes : "ANA" , "RET ANA"
            Case "ANA", "RET ANA"

                If .Range("AI" & Lig).Value = "" Then

                '.Range("AI" & Lig).Interior.ColorIndex = 2

                .Range("B" & Lig).Select
                .Range("B" & Lig).AddComment
                .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre renseigner"

                .Range("AI" & Lig).Interior.ColorIndex = 38
                .Range("B" & Lig).Font.ColorIndex = 25
                .Range("B" & Lig).Font.Bold = True

                    'sinon mettre la ligne avec un fond blanc et l'ecriture n'est pas bold
                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2

                End If

            'Si on a la valeur : "VAL ANA"
            Case "VAL ANA"

                If .Range("AI" & Lig).Value = "" Or .Range("W" & Lig).Value = "" Then

                .Range("AI" & Lig).Interior.ColorIndex = 2
                .Range("W" & Lig).Interior.ColorIndex = 2

                .Range("B" & Lig).Select
                .Range("B" & Lig).AddComment
                .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse, ou la livraison FDM réelle ou réestimée, doit etre renseigner"

                 If .Range("AI" & Lig).Value = "" Then
                    .Range("AI" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2
                 End If

                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False
                End If

            'Si on a l'une des valeurs suivantes : "VAL REA" , "REA / TST"
            Case "VAL REA", "REA / TST"

                If .Range("AI" & Lig).Value <> "0" Or .Range("W" & Lig).Value = "" Or .Range("AJ" & Lig).Value = "" Then

                .Range("AI" & Lig).Interior.ColorIndex = 2
                .Range("W" & Lig).Interior.ColorIndex = 2
                .Range("AJ" & Lig).Interior.ColorIndex = 2

                .Range("B" & Lig).Select
                .Range("B" & Lig).AddComment
                .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre = 0, ou le RAF dev + tu, ou la livraison FDM réelle ou réestimée, doit etre renseigner"

                 If .Range("AI" & Lig).Value <> "0" Then
                    .Range("AI" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True
                    Else
                       .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2

                 End If

                 If .Range("AJ" & Lig).Value = "" Then
                    .Range("AJ" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                 End If

                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False

                End If

            'Si on a la valeur : "VAL REC"
            Case "VAL REC"

                If .Range("AI" & Lig).Value <> "0" Or .Range("W" & Lig).Value = "" Or .Range("AJ" & Lig).Value = "" Or .Range("AC" & Lig).Value = "" Then

                .Range("AI" & Lig).Interior.ColorIndex = 2
                .Range("W" & Lig).Interior.ColorIndex = 2
                .Range("AJ" & Lig).Interior.ColorIndex = 2
                .Range("AC" & Lig).Interior.ColorIndex = 2

                .Range("B" & Lig).Select
                .Range("B" & Lig).AddComment
                .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre = 0, ou le RAF dev + tu, ou la livraison FDM réelle ou réestimée, ou la livraison recette réelle, doit etre renseigner"

                 If .Range("AI" & Lig).Value <> "0" Then
                    .Range("AI" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2
                 End If

                 If .Range("AJ" & Lig).Value = "" Then
                    .Range("AJ" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25 '
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AC" & Lig).Value)) Then
                    .Range("AC" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True
                    Else
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                End If

                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False

                End If

            'Si on a l'une des valeurs suivantes : "VAL BL" , "VAL HOM", "RET REC"
            Case "VAL BL", "VAL HOM", "RET REC"

                If .Range("AI" & Lig).Value <> "0" Or .Range("W" & Lig).Value = "" Or .Range("AJ" & Lig).Value = "" Or .Range("AA" & Lig).Value = "" Then

                    .Range("AI" & Lig).Interior.ColorIndex = 2
                    .Range("W" & Lig).Interior.ColorIndex = 2
                    .Range("AJ" & Lig).Interior.ColorIndex = 2
                    .Range("AA" & Lig).Interior.ColorIndex = 2

                    .Range("B" & Lig).Select
                    .Range("B" & Lig).AddComment
                    .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre = 0, ou le RAF dev + tu, ou la livraison FDM réelle ou réestimée, ou la livraison FTU réelle ou réestimée, doit etre renseigner"

                If .Range("AI" & Lig).Value <> "0" Then
                   .Range("AI" & Lig).Interior.ColorIndex = 38
                   .Range("B" & Lig).Font.ColorIndex = 25
                   .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2
                 End If

                 If .Range("AJ" & Lig).Value = "" Then
                    .Range("AJ" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AA" & Lig).Value)) Then
                    .Range("AA" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                 End If
                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False
                End If

            'Si on a l'une des valeurs suivantes : "FR REC" , "REC"
            Case "FR REC", "REC"

                If .Range("AI" & Lig).Value <> "0" Or .Range("W" & Lig).Value = "" Or .Range("AJ" & Lig).Value = "" Or .Range("AA" & Lig).Value = "" Or .Range("AC" & Lig).Value = "" Then

                    .Range("AI" & Lig).Interior.ColorIndex = 2
                    .Range("W" & Lig).Interior.ColorIndex = 2
                    .Range("AJ" & Lig).Interior.ColorIndex = 2
                    .Range("AA" & Lig).Interior.ColorIndex = 2
                    .Range("AC" & Lig).Interior.ColorIndex = 2

                    .Range("B" & Lig).Select
                    .Range("B" & Lig).AddComment
                    .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre = 0, ou le RAF dev + tu, ou la livraison FDM réelle ou réestimée, ou la livraison FTU réelle ou réestimée, ou la livraison recette réelle doit etre renseigner"

                If .Range("AI" & Lig).Value <> "0" Then
                    .Range("AI" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2
                 End If

                 If .Range("AJ" & Lig).Value = "" Then
                    .Range("AJ" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AA" & Lig).Value)) Then
                    .Range("AA" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AC" & Lig).Value)) Then
                    .Range("AC" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                 End If

                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False

                End If

            'Si on a la valeur : "FV REC"
            Case "FV REC"

                If .Range("AI" & Lig).Value <> "0" Or .Range("W" & Lig).Value = "" Or .Range("AJ" & Lig).Value = "" Or .Range("AA" & Lig).Value = "" Or .Range("AC" & Lig).Value = "" Or Not (IsDate(.Range("AD" & Lig).Value)) Then

                    .Range("AI" & Lig).Interior.ColorIndex = 2
                    .Range("W" & Lig).Interior.ColorIndex = 2
                    .Range("AJ" & Lig).Interior.ColorIndex = 2
                    .Range("AA" & Lig).Interior.ColorIndex = 2
                    .Range("AC" & Lig).Interior.ColorIndex = 2
                    .Range("AD" & Lig).Interior.ColorIndex = 2

                    .Range("B" & Lig).Select
                    .Range("B" & Lig).AddComment
                    .Range("B" & Lig).Comment.Text Text:="Le RAF Analyse doit etre = 0, ou le RAF dev + tu, ou la livraison FDM réelle ou réestimée, ou la livraison FTU réelle ou réestimée, ou la livraison recette réelle, ou le FV recette doit etre renseigner"

                 If .Range("AI" & Lig).Value <> "0" Then
                    .Range("AI" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("W" & Lig).Value)) Then
                    .Range("W" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("W" & Lig).Interior.ColorIndex = 2
                 End If

                 If .Range("AJ" & Lig).Value = "" Then
                    .Range("AJ" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AA" & Lig).Value)) Then
                    .Range("AA" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AC" & Lig).Value)) Then
                    .Range("AC" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                 End If

                 If Not (IsDate(.Range("AD" & Lig).Value)) Then
                    .Range("AD" & Lig).Interior.ColorIndex = 38
                    .Range("B" & Lig).Font.ColorIndex = 25
                    .Range("B" & Lig).Font.Bold = True

                    Else
                        .Range("AD" & Lig).Interior.ColorIndex = 2
                 End If

                    Else
                        .Range("B" & Lig).ClearComments
                        .Range("W" & Lig).Interior.ColorIndex = 2
                        .Range("AI" & Lig).Interior.ColorIndex = 2
                        .Range("AJ" & Lig).Interior.ColorIndex = 2
                        .Range("AA" & Lig).Interior.ColorIndex = 2
                        .Range("AC" & Lig).Interior.ColorIndex = 2
                        .Range("AD" & Lig).Interior.ColorIndex = 2
                        .Range("B" & Lig).Font.ColorIndex = 1
                        .Range("B" & Lig).Font.Bold = False
                End If

            Case Else

        End Select

    Next Lig

End With

End Sub

Alors une ptite idée?

holà doucement...

Bon en survolant la macro, je vois pas trop ce qui pourrait bugger...

Et si on parlait du bouton ?

C'est une forme automatique ? un commandbutton ?

Comment as tu fait pour le déplacer ?

Va peut-être falloir joindre ton fichier, histoire qu'on puisse reproduire l'erreur

bein c un berouton commande, je l'ai deplacer par un copier coller, ça ne marche pas.

j'ai créé un autre dans la nouvelle feuille et je lui ai affecter la macro et c toujours la meme chose.

pour le fichier je ne peux pas le joindre dsl.

1stock-1.xlsm (107.42 Ko)
3stocks-v2.xlsm (92.27 Ko)

Bonjour

With Sheets("Suivi des demandes")

As-tu pensé à mettre le nom de la nouvelle feuille à la place ?

Amicalement

Nad

Bonjour,

On peut se poser des questions sur le :

DerLig = .Range("A" & Rows.Count).End(xlUp).Row

Si .Range est bien défini par le With, il n'en est pas de même pour Rows qui pointe sur la FeuilleActive.

ça doit suffire pour déclancher les protestations de VBA ! (surtout si le With porte sur une autre feuille...)

A+

Même remarque que Galopin...

Je l'avais pourtant vu avant d'aller manger, puis ça m'est complètement sorti de la tête de retour au boulot le ventre plein

Et d'ailleurs pourquoi cette méthode pour définir le derlig, plutôt qu'un simple ("A65536").End(xlUp).Row

pour le rows, ça a marcher avec d'autres boutons que j'ai mis dans la nouvelle feuille.

pour with et le nom de la nouvelle feuille, il va faire le traitement sur la nouvelle feuille.

capture
Rechercher des sujets similaires à "probleme bouton"