A voir également:
- Vb executer bouton à l'ouverture d'excel
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
13 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
16 juil. 2009 à 11:20
16 juil. 2009 à 11:20
Bonjour,
Tu doit mettre la sub Clic du bouton en Public (à la place de Private)
et ensuite
Tu doit mettre la sub Clic du bouton en Public (à la place de Private)
et ensuite
Private Sub Workbook_Open()A+
Call UserForm1.CommandButton1_Click
Unload UserForm1
Merci ! ca fonctionne !
Et comment appeler una macro du type : private Sub Worksheet_Change(ByVal Target As Range) ?
Merci !
Et comment appeler una macro du type : private Sub Worksheet_Change(ByVal Target As Range) ?
Merci !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
16 juil. 2009 à 14:23
16 juil. 2009 à 14:23
de la même façon, sauf que tu doit donner une valeur, en l'occurance un Range...
Par exemple.
A+
LeNomDeLaFeuille.Worksheet_Change(Range("A1"))
Par exemple.
A+
Le problème c'est que dans mon instruction : Worksheet_Change(ByVal Target As Range) j'ai beaucoup de if vérifiant des valeurs dans des range. donc je ne peux pas spécifier une range unique !
De plus, mon instruction worksheet_change ne marche pas très bien, je veux des que je modifi quelque chose dans ma feuille, il fasse tous les tests que j'ai fait. désolé si ces questions sortent du sujet.
Merci !
De plus, mon instruction worksheet_change ne marche pas très bien, je veux des que je modifi quelque chose dans ma feuille, il fasse tous les tests que j'ai fait. désolé si ces questions sortent du sujet.
Merci !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
17 juil. 2009 à 13:32
17 juil. 2009 à 13:32
Le range A1 c'était pour l'exemple, tu peu mettre une plage, A1:C25 par exemple.
Pour les test c'est pas possible de te répondre comme ça, sans renseignement.
Tu peu mettre un exemple de ton classeur sur Cjoint ?
Pour les test c'est pas possible de te répondre comme ça, sans renseignement.
Tu peu mettre un exemple de ton classeur sur Cjoint ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Public Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
End If
If Range("l160").Value <> "" Then
Range("L160").Interior.Color = RGB(255, 255, 255)
End If
If Range("O160") <> "" Then
Range("M160").Interior.Color = RGB(51, 51, 255)
Else: Range("M160").Interior.Color = RGB(255, 255, 255)
End If
end sub
Ce code est placé dans Feuil1 et la procédure ne s'execute pas dès que je modifi soit O160 soit L160 !
Merci!
Application.EnableEvents = False
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
End If
If Range("l160").Value <> "" Then
Range("L160").Interior.Color = RGB(255, 255, 255)
End If
If Range("O160") <> "" Then
Range("M160").Interior.Color = RGB(51, 51, 255)
Else: Range("M160").Interior.Color = RGB(255, 255, 255)
End If
end sub
Ce code est placé dans Feuil1 et la procédure ne s'execute pas dès que je modifi soit O160 soit L160 !
Merci!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
17 juil. 2009 à 15:53
17 juil. 2009 à 15:53
Normal, dés que tu fait UN changement dans ta feuille tu passe par...
Sans ça la fonction n'est plus appellée, aucune fonction de feuille d'ailleur.
A+
Application.EnableEvents = False et où est... Application.EnableEvents = True
Sans ça la fonction n'est plus appellée, aucune fonction de feuille d'ailleur.
A+
Application.EnableEvents = False
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
Application.EnableEvents =true
End If
c'est bon comme ca? j'ai mi Application.EnableEvents = False parce que ma macro ralentissait tout.
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
Application.EnableEvents =true
End If
c'est bon comme ca? j'ai mi Application.EnableEvents = False parce que ma macro ralentissait tout.
J'ai fai comme au dessus, ca fonctionne merci !
J'ai une autre question, j'ai bnesoin d'appliquer ma macro sur toute la colonne O et pas seulement sur O160, comment faire?
private sub test
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
End If
comment faire en sorte que si n'importe quelle cellule dans la clonne O est différent de "" (<> "") alors la cellule relative dans la colonne L devient bleu.Quelque chose comme ca, mais ca ne fonctionne pas.
Merci d'avance !
J'ai une autre question, j'ai bnesoin d'appliquer ma macro sur toute la colonne O et pas seulement sur O160, comment faire?
private sub test
If Range("O160") <> "" Then
Range("L160").Interior.Color = RGB(51, 51, 255)
Else: Range("L160").Interior.Color = RGB(255, 255, 255)
End If
comment faire en sorte que si n'importe quelle cellule dans la clonne O est différent de "" (<> "") alors la cellule relative dans la colonne L devient bleu.Quelque chose comme ca, mais ca ne fonctionne pas.
private sub test For i = 1 To [O65536].End(xlUp).Row If Cells(i, "O") <> "" Then Cells(i, "O").Interior.Color = RGB(51, 51, 255) Else: Range("L").Interior.Color = RGB(255, 255, 255) End If
Merci d'avance !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
20 juil. 2009 à 15:58
20 juil. 2009 à 15:58
Re,
Mais pour faire ça tu pourrais tout simplement employer une MFC (Mise en forme conditionnel)
A+
Private Sub test() Dim Lig As Long For Lig = 1 To [O65536].End(xlUp).Row If Cells(Lig, 15) <> "" Then Cells(Lig, 15).Interior.Color = RGB(51, 51, 255) Else Cells(Lig, 15).Interior.Color = RGB(255, 255, 255) End If Next Lig End Sub
Mais pour faire ça tu pourrais tout simplement employer une MFC (Mise en forme conditionnel)
A+
J'ai atteint le maximum de MEF, donc je dois les développer ! dommage !
Merci pour ton code !
Par contre, ta macro dit que : si une des cellules dans la colonnne O est remplit, toutes les cellules ou il ya du texte dedans sont bleu.
Or, je voudrai que si n'importe quelle cellule de la colonne O est remplit, la cellule relative dans la colonne L devient bleu si elle est vide.
Exemple : j'entre du texte dans une cellule au hasard admettons "O123 alors si "L123 est vide, "L123" est coloriser en bleu.
Merci de m'aider !
Merci pour ton code !
Par contre, ta macro dit que : si une des cellules dans la colonnne O est remplit, toutes les cellules ou il ya du texte dedans sont bleu.
Or, je voudrai que si n'importe quelle cellule de la colonne O est remplit, la cellule relative dans la colonne L devient bleu si elle est vide.
Exemple : j'entre du texte dans une cellule au hasard admettons "O123 alors si "L123 est vide, "L123" est coloriser en bleu.
Merci de m'aider !
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
20 juil. 2009 à 16:21
20 juil. 2009 à 16:21
Faudrait que tu commence à réfléchir un tout,tout petit peu...
Private Sub test() Dim Lig As Long For Lig = 1 To [O65536].End(xlUp).Row If Cells(Lig, 15) <> "" And Cells(Lig, 12) = "" Then Cells(Lig, 12).Interior.Color = RGB(51, 51, 255) Else Cells(Lig, 12).Interior.Color = RGB(255, 255, 255) End If Next Lig End Sub