XL 2013 Appliquer le programme sur une seule feuille

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
 

Jacky67

XLDnaute Barbatruc
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
 

KINANI

XLDnaute Nouveau
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
 

KINANI

XLDnaute Nouveau
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
 

Jacky67

XLDnaute Barbatruc
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:

KINANI

XLDnaute Nouveau
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à
 

Discussions similaires

Réponses
6
Affichages
202
Réponses
14
Affichages
620

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 842
dernier inscrit
seb0390