XL 2013 Appliquer le programme sur une seule feuille

  • Initiateur de la discussion Initiateur de la discussion KINANI
  • 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 !

KINANI

XLDnaute Nouveau
Bonjour tout le monde,

J'ai fait un petit programme (voir ci-dessous) sur thisworkbook et le problème c qu'il s'applique sur mes deux feuilles alors que moi je veux qu'il s'applique juste sur une seule et je sais pas comment faire, j'ai essayé avec sheet("feuille1").select("feuille") mais ça marche pas, vu que je suis débutant en vba est-ce que quelqu'un pourra m'aider?

Sub Erreur()
Range("AN10").Select
Range("AN10").Value = "=TODAY()"
Dim i As Integer
For i = 13 To Range("F500").End(xlUp).Row
Range("AN" & i).Value = Range("AN10") - Range("F" & i)
If Range("F" & i) < Range("AN10") Then
UserForm3.Show
Range("A" & i & ":AM" & i).Interior.Color = RGB(255, 0, 0)
ElseIf Range("F" & i) > Range("AN10") Then
Range("A" & i & ":AM" & i).Interior.Color = xlNone

End If
Next i

End Sub
 
Bonjour tout le monde,

J'ai fait un petit programme (voir ci-dessous) sur thisworkbook et le problème c qu'il s'applique sur mes deux feuilles alors que moi je veux qu'il s'applique juste sur une seule et je sais pas comment faire, j'ai essayé avec sheet("feuille1").select("feuille") mais ça marche pas, vu que je suis débutant en vba est-ce que quelqu'un pourra m'aider?

Sub Erreur()
Range("AN10").Select
Range("AN10").Value = "=TODAY()"
Dim i As Integer
For i = 13 To Range("F500").End(xlUp).Row
Range("AN" & i).Value = Range("AN10") - Range("F" & i)
If Range("F" & i) < Range("AN10") Then
UserForm3.Show
Range("A" & i & ":AM" & i).Interior.Color = RGB(255, 0, 0)
ElseIf Range("F" & i) > Range("AN10") Then
Range("A" & i & ":AM" & i).Interior.Color = xlNone

End If
Next i

End Sub
Bonjoiur,
Sans voir le classeur ni l'userform3, je dirais
VB:
Sub Erreur()
    Dim i As Integer
    With Sheets("Feuil1")    'adapter le nom réel de la feuille, ici "Feuil1")
        .Range("AN10").Value = "=TODAY()"
        For i = 13 To .Range("F500").End(xlUp).Row
            .Range("AN" & i).Value = .Range("AN10") - .Range("F" & i)
            If .Range("F" & i) < .Range("AN10") Then
                UserForm3.Show
                .Range("A" & i & ":AM" & i).Interior.Color = RGB(255, 0, 0)
            ElseIf .Range("F" & i) > .Range("AN10") Then
                .Range("A" & i & ":AM" & i).Interior.Color = xlNone
            End If
        Next i
    End With
End Sub
 
Bonjoiur,
Sans voir le classeur ni l'userform3, je dirais
VB:
Sub Erreur()
    Dim i As Integer
    With Sheets("Feuil1")    'adapter le nom réel de la feuille, ici "Feuil1")
        .Range("AN10").Value = "=TODAY()"
        For i = 13 To .Range("F500").End(xlUp).Row
            .Range("AN" & i).Value = .Range("AN10") - .Range("F" & i)
            If .Range("F" & i) < .Range("AN10") Then
                UserForm3.Show
                .Range("A" & i & ":AM" & i).Interior.Color = RGB(255, 0, 0)
            ElseIf .Range("F" & i) > .Range("AN10") Then
                .Range("A" & i & ":AM" & i).Interior.Color = xlNone
            End If
        Next i
    End With
End Sub


Bonjour,
mercii ça a marché, mais j'ai un petit soucis c que mon userform3 s'affiche pas directement quand j'ouvre le fichier excel pour me montrer qu'il y a un retard, faut que j'ouvre le programme et cliqué sur exécuté pour que ça marche
 
et voilà la programmation de mon userform3

Private Sub UserForm_initialize()
UserForm3.Caption = "Attention:Intervention en retard"

Dim Delai As Variant
Dim i As Integer
For i = 13 To Range("F5000").End(xlUp).Row

Delai = Cells(i, 500) - Range("AN10")


If Range("F" & i) > Range("AN10") Then
Label1.Caption = "Intervention sur la machine pour la maintenance préventive est en retard."

End If

Next i

End Sub
 
RE
Pour que la procédure "Sub Erreur()" soit lancé à l'ouverture du classeur
Placer ceci dans le ThisWorkbook du classeur en question

VB:
Private Sub Workbook_Open()
  Call Erreur
End Sub
Attention, dans le code de l'userform aucune feuille n'est spécifiée, ce sera donc la feuille active qui sera prise en compte
"Delai", tel qu'il est configuré ne sert à rien
Il serait sage de mettre en ligne un classeur brouillon avec les explications du résultat attendu
 
Dernière édition:
RE
Pour que la procédure "Sub Erreur()" soit lancé à l'ouverture du classeur
Placer ceci dans le ThisWorkbook du classeur en question

VB:
Private Sub Workbook_Open()
  Call Erreur
End Sub
Attention, dans le code de l'userform aucune feuille n'est spécifiée, ce sera donc la feuille active qui sera prise en compte
"Delai", tel qu'il est configuré ne sert à rien
Il serait sage de mettre en ligne un classeur brouillon avec les explications du résultat attendu

Bonjour,
merci beaucoup ça marche vraiment bien maintenant, pour le "Délai" c juste que j'ai oublié de l'enlever, il me sert à rien du tout là
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
508
Réponses
4
Affichages
197
Réponses
2
Affichages
285
Réponses
2
Affichages
158
Retour