VBA-Macro
Résolu/Fermé
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
-
18 mars 2014 à 16:36
JANGO5 Messages postés 92 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 13 août 2014 - 19 mars 2014 à 11:54
JANGO5 Messages postés 92 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 13 août 2014 - 19 mars 2014 à 11:54
A voir également:
- VBA-Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
- Vba attendre 1 seconde ✓ - Forum VB / VBA
9 réponses
nauzia45
Messages postés
342
Date d'inscription
samedi 16 février 2013
Statut
Membre
Dernière intervention
24 décembre 2020
23
18 mars 2014 à 18:28
18 mars 2014 à 18:28
Bonjour,
Regarde si cet exemple te convient
https://www.cjoint.com/?DCsszVgvWyW
Regarde si cet exemple te convient
https://www.cjoint.com/?DCsszVgvWyW
Bonjour
voila avec une varriable String
Sub Test()
Dim Tvar As String
Application.ScreenUpdating = False
For Lig = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Tvar = Range("B" & Lig).Value
Select Case Tvar
Case "0"
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case "1"
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
Next
Application.ScreenUpdating = True
End Sub
si ca marche pas envoie un model ca serat plus simple
A+
Maurice
voila avec une varriable String
Sub Test()
Dim Tvar As String
Application.ScreenUpdating = False
For Lig = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Tvar = Range("B" & Lig).Value
Select Case Tvar
Case "0"
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case "1"
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
Next
Application.ScreenUpdating = True
End Sub
si ca marche pas envoie un model ca serat plus simple
A+
Maurice
nauzia45
Messages postés
342
Date d'inscription
samedi 16 février 2013
Statut
Membre
Dernière intervention
24 décembre 2020
23
18 mars 2014 à 16:39
18 mars 2014 à 16:39
Bonjour,
Pourquoi ne pas passer plus simplement par une mise en forme conditionnelle ?
A vous lire
Pourquoi ne pas passer plus simplement par une mise en forme conditionnelle ?
A vous lire
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
18 mars 2014 à 16:45
18 mars 2014 à 16:45
Bonjour,
Au fait j'ai besoin que ça fonctionne en permanence, si jamais on supprime le contenu du tableau la fonction doit continuer à faire son boulot.
La macro doit marcher dès le chargement du fichier !
En ce qui me concerne je n'ai encore jamais utilisé la mise en forme conditionnelle !
Merci
Au fait j'ai besoin que ça fonctionne en permanence, si jamais on supprime le contenu du tableau la fonction doit continuer à faire son boulot.
La macro doit marcher dès le chargement du fichier !
En ce qui me concerne je n'ai encore jamais utilisé la mise en forme conditionnelle !
Merci
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
18 mars 2014 à 16:56
18 mars 2014 à 16:56
Je suis d'accord avec Nauzia, la mise en forme conditionnelle te suffira amplement, à condition que tu sois sous Office 2007+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
18 mars 2014 à 17:12
18 mars 2014 à 17:12
Bonjour,
Pouvez-vous être plus explicite svp Quel cas et quel formule je pourrais appliqué ?
En ce qui concerne ma macro j'ai pu avoir un résultat correcte mais rien que pour B2.
Voilà :
Sub formatConditionnelle()
Application.ScreenUpdating = False
Sheets("Feuil1").Select
If Range("B2").Value = 1 Then
Range("C2").Select
Selection.Interior.ColorIndex = 56
Else
If Range("B2").Value = 0 Then
Range("D2").Select
Selection.Interior.ColorIndex = 56
Range("E2").Select
Selection.Interior.ColorIndex = 56
End If
End If
Application.ScreenUpdating = True
End Sub
Merci
Cordialement
Pouvez-vous être plus explicite svp Quel cas et quel formule je pourrais appliqué ?
En ce qui concerne ma macro j'ai pu avoir un résultat correcte mais rien que pour B2.
Voilà :
Sub formatConditionnelle()
Application.ScreenUpdating = False
Sheets("Feuil1").Select
If Range("B2").Value = 1 Then
Range("C2").Select
Selection.Interior.ColorIndex = 56
Else
If Range("B2").Value = 0 Then
Range("D2").Select
Selection.Interior.ColorIndex = 56
Range("E2").Select
Selection.Interior.ColorIndex = 56
End If
End If
Application.ScreenUpdating = True
End Sub
Merci
Cordialement
Bonjour
voila une macro avec un compteur de Ligne
Sub test()
Application.ScreenUpdating = False
For Lig = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Select Case Range("B" & Lig).Value
Case 0
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case 1
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
Next
Application.ScreenUpdating = True
End Sub
A+
Maurice
voila une macro avec un compteur de Ligne
Sub test()
Application.ScreenUpdating = False
For Lig = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Select Case Range("B" & Lig).Value
Case 0
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case 1
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
Next
Application.ScreenUpdating = True
End Sub
A+
Maurice
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
19 mars 2014 à 10:31
19 mars 2014 à 10:31
Bonjour,
Merci Maurice mais ta macro ne grise pas que les cellules en question. J'ai testé et ça grise aussi les cellules entre les deux valeurs.
Entre temps je suis tombé sur une macro qui fonctionne plutot bien sauf que je n'arrive pas à la modifier pour prendre en compte ma deuxième condition.
Dans le cas d'un 0 c'est fait pour le 1 je n'arrive pas à mettre la deuxieme condition ou un else.
PLease help !
Voilà la macro
Private Sub Coloriser()
Dim Plage As Range
Dim Cel As Range
Dim Tbl
Dim Adr As String
Dim I As Integer
Dim J As Integer
Dim Adresse As String
Tbl = Array("0")
With Worksheets("Feuil1")
Set Plage = .Range(.[B2], .[B65536].End(xlUp))
End With
For J = 0 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(J) & "*", , xlValues)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = Cel.Row
Adresse = "M" & I & ":N" & I & _
",P" & I & ":Q" & I &
Range(Adresse).Interior.ColorIndex = 56
Set Cel = Plage.FindNext(Cel)
Loop While Adr <> Cel.Address
End If
Next J
End Sub
Merci
Merci Maurice mais ta macro ne grise pas que les cellules en question. J'ai testé et ça grise aussi les cellules entre les deux valeurs.
Entre temps je suis tombé sur une macro qui fonctionne plutot bien sauf que je n'arrive pas à la modifier pour prendre en compte ma deuxième condition.
Dans le cas d'un 0 c'est fait pour le 1 je n'arrive pas à mettre la deuxieme condition ou un else.
PLease help !
Voilà la macro
Private Sub Coloriser()
Dim Plage As Range
Dim Cel As Range
Dim Tbl
Dim Adr As String
Dim I As Integer
Dim J As Integer
Dim Adresse As String
Tbl = Array("0")
With Worksheets("Feuil1")
Set Plage = .Range(.[B2], .[B65536].End(xlUp))
End With
For J = 0 To UBound(Tbl)
Set Cel = Plage.Find(Tbl(J) & "*", , xlValues)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
I = Cel.Row
Adresse = "M" & I & ":N" & I & _
",P" & I & ":Q" & I &
Range(Adresse).Interior.ColorIndex = 56
Set Cel = Plage.FindNext(Cel)
Loop While Adr <> Cel.Address
End If
Next J
End Sub
Merci
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
19 mars 2014 à 11:17
19 mars 2014 à 11:17
C'est impeccable Maurice ça marche super bien avec du code simple Mercii!
Maintenant mon autre soucis est d'automatiser cette manoeuvre, j'aimerais que cette macro s'exécute à chaque fois dès que je renseigne une cellule de la colonne B.
Je ne sais pas trop si possible d'ailleurs mais qui c
Cordialement
Maintenant mon autre soucis est d'automatiser cette manoeuvre, j'aimerais que cette macro s'exécute à chaque fois dès que je renseigne une cellule de la colonne B.
Je ne sais pas trop si possible d'ailleurs mais qui c
Cordialement
Bonjour
mettre le code dans la feuille
je voie un truc comme ca
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Tvar As String
Lig = Target.Row - 1
If Target.Column = 2 Then
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Tvar = Range("B" & Lig).Value
Select Case Tvar
Case "0"
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case "1"
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
End If
End Sub
A+
Maurice
mettre le code dans la feuille
je voie un truc comme ca
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Tvar As String
Lig = Target.Row - 1
If Target.Column = 2 Then
Range("D" & Lig & ":F" & Lig & ",J" & Lig).Interior.ColorIndex = xlNone
Tvar = Range("B" & Lig).Value
Select Case Tvar
Case "0"
Range("F" & Lig & ",J" & Lig).Interior.ColorIndex = 15
Case "1"
Range("D" & Lig & ":E" & Lig).Interior.ColorIndex = 15
End Select
End If
End Sub
A+
Maurice
JANGO5
Messages postés
92
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
13 août 2014
1
19 mars 2014 à 11:54
19 mars 2014 à 11:54
Bonjour Maurice,
je garde l'ancien module et je met le private sub sur la feuille ?
Parce que quand je le met seul sur la feuille il ne retrouve pas la macro !!
Sinon j'ai mis la nouvelle macro dans un module et là ça bloque à la 3 ème ligne Lig = Target.Row - 1
Cordialement ,
je garde l'ancien module et je met le private sub sur la feuille ?
Parce que quand je le met seul sur la feuille il ne retrouve pas la macro !!
Sinon j'ai mis la nouvelle macro dans un module et là ça bloque à la 3 ème ligne Lig = Target.Row - 1
Cordialement ,
19 mars 2014 à 09:06