Effacer contenu et bordures de cellules d'une plage
Fermé
Roland
-
20 nov. 2015 à 17:37
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 27 nov. 2015 à 10:01
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 27 nov. 2015 à 10:01
A voir également:
- Vba effacer une plage de cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Comment effacer une page sur word - Guide
- Effacer les données de navigation - Guide
- Effacer les cookies - Guide
- Verrouiller cellules excel - Guide
13 réponses
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
Modifié par ccm81 le 20/11/2015 à 18:31
Modifié par ccm81 le 20/11/2015 à 18:31
Bonjour
Une macro à adapter
Cdlmnt
Une macro à adapter
Const plage = "A2:G22" Const coco = "G" Sub ok() Dim paef As Range, m, obj As Object Dim codeb As Long, cofin As Long, lideb As Long, lifin As Long m = Application.WorksheetFunction.Max(Columns(coco)) Set obj = Columns(coco).Find(m, , , xlWhole) lideb = obj.Row lifin = Range(Split(plage, ":")(1)).Row codeb = Range(Split(plage, ":")(0)).Column cofin = Range(Split(plage, ":")(1)).Column Set paef = Range(Cells(lideb, codeb), Cells(lifin, cofin)) paef.Value = "" paef.Borders.LineStyle = xlNone End Sub
Cdlmnt
Bonjour
Merci de votre réponse.
Lorsque je veux appliquer la macro il s'affiche le message suivant : "Erreur de compilation : End Sub attendu"
La macro se présente ainsi :
Const plage = "M37:AJ147"
Const coco = "AJ"
Sub ok()
Dim paef As Range, m, obj As Object
Dim codeb As Long, cofin As Long, lideb As Long, lifin As Long
m = Application.WorksheetFunction.Max(Columns(coco))
Set obj = Columns(coco).Find(m, , , xlWhole)
lideb = obj.Row
lifin = Range(Split(plage, ":")(1)).Row
codeb = Range(Split(plage, ":")(0)).Column
cofin = Range(Split(plage, ":")(1)).Column
Set paef = Range(Cells(lideb, codeb), Cells(lifin, cofin))
paef.Value = ""
paef.Borders.LineStyle = xlNone
End Sub
Comment résoudre ce problème?
Merci de votre réponse.
Lorsque je veux appliquer la macro il s'affiche le message suivant : "Erreur de compilation : End Sub attendu"
La macro se présente ainsi :
Const plage = "M37:AJ147"
Const coco = "AJ"
Sub ok()
Dim paef As Range, m, obj As Object
Dim codeb As Long, cofin As Long, lideb As Long, lifin As Long
m = Application.WorksheetFunction.Max(Columns(coco))
Set obj = Columns(coco).Find(m, , , xlWhole)
lideb = obj.Row
lifin = Range(Split(plage, ":")(1)).Row
codeb = Range(Split(plage, ":")(0)).Column
cofin = Range(Split(plage, ":")(1)).Column
Set paef = Range(Cells(lideb, codeb), Cells(lifin, cofin))
paef.Value = ""
paef.Borders.LineStyle = xlNone
End Sub
Comment résoudre ce problème?
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
Modifié par ccm81 le 21/11/2015 à 10:35
Modifié par ccm81 le 21/11/2015 à 10:35
Lorsque je veux appliquer la macro il s'affiche le message suivant : "Erreur de compilation : End Sub attendu"
Bizarre, chez moi, j'ai quand même recopié ton code dans un module, j'ai pu le compiler et l'exécuter sans erreur.
N'aurais tu pas d'autres macros dans ton module ?
Sinon envoies ton fichier via cjoint.com
Cdlmnt
Bizarre, chez moi, j'ai quand même recopié ton code dans un module, j'ai pu le compiler et l'exécuter sans erreur.
N'aurais tu pas d'autres macros dans ton module ?
Sinon envoies ton fichier via cjoint.com
Cdlmnt
Bonjour CCM81
Je joins le fichier. Je suis sur Excel 2000.
Cliquer sur Outils Macros fait apparaître une liste de 3 macros ("Deuxnuminsertion", "Numéros", "OK"), un clic sur Visual Basic Editor permet de voir les modules, dont deux contiennent des macros (Module 6 : "Deuxnuminsertion"; Module 5 : "Numéros").
J'ai 3 macros dans la liste des macros et 2 dans les modules. Le problème vient-il de là?
Cordialement
http://www.cjoint.com/c/EKvopxAkGIY
Je joins le fichier. Je suis sur Excel 2000.
Cliquer sur Outils Macros fait apparaître une liste de 3 macros ("Deuxnuminsertion", "Numéros", "OK"), un clic sur Visual Basic Editor permet de voir les modules, dont deux contiennent des macros (Module 6 : "Deuxnuminsertion"; Module 5 : "Numéros").
J'ai 3 macros dans la liste des macros et 2 dans les modules. Le problème vient-il de là?
Cordialement
http://www.cjoint.com/c/EKvopxAkGIY
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
Modifié par ccm81 le 21/11/2015 à 17:42
Modifié par ccm81 le 21/11/2015 à 17:42
Tu supprimes ces lignes, qui déclarent une procedure dont il n'y a ni le corps (le code proprement dit) ni la fin (end sub)
Sub Deuxnuminsertion()
'
' Deuxnuminsertion Macro
' Macro enregistrée le 21/11/2015 par Roland
'
'
RQ. Tu as quelques modules vides que tu peux supprimer
Cdlmnt
Sub Deuxnuminsertion()
'
' Deuxnuminsertion Macro
' Macro enregistrée le 21/11/2015 par Roland
'
'
RQ. Tu as quelques modules vides que tu peux supprimer
Cdlmnt
Bonjour CCM 81
J'ai effectué les modifications présentées dans le fichier joint. Il apparaît le message "Erreur d'exécution 91 - variable ou objet de bloc With non définie".
Le débogueur surligne en jaune la ligne "libed = objet.Row".
J'ai du faire quelque part une opération qui bloque la macro.
Cdlmt
http://www.cjoint.com/c/EKxksb7HEgY
J'ai effectué les modifications présentées dans le fichier joint. Il apparaît le message "Erreur d'exécution 91 - variable ou objet de bloc With non définie".
Le débogueur surligne en jaune la ligne "libed = objet.Row".
J'ai du faire quelque part une opération qui bloque la macro.
Cdlmt
http://www.cjoint.com/c/EKxksb7HEgY
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
23 nov. 2015 à 12:02
23 nov. 2015 à 12:02
Dans la déclaration des variables, modifies le type de la variable m comme ceci
Dim paef As Range, m As Date, obj As Object
Cdlmnt
Dim paef As Range, m As Date, obj As Object
Cdlmnt
Bonjour CCM81
La macro fonctionne mais il y a un problème exposé dans le fichier joint.
Cdlmt
http://www.cjoint.com/c/EKywbVeRHiY
La macro fonctionne mais il y a un problème exposé dans le fichier joint.
Cdlmt
http://www.cjoint.com/c/EKywbVeRHiY
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
25 nov. 2015 à 11:42
25 nov. 2015 à 11:42
1. Pour ce qui est de la couleur, tu ajoutes le ligne souligée
2. Pour ce qui est de l'erreur, je crois qu'elle provient du fait qu'en AI160 tu as une valeur qui n'a rien à voir avec les dates du début de colonne.
Essaies ceci
Cdlmnt
paef.Borders.LineStyle = xlNone
paef.Interior.ColorIndex = 2
End Sub
2. Pour ce qui est de l'erreur, je crois qu'elle provient du fait qu'en AI160 tu as une valeur qui n'a rien à voir avec les dates du début de colonne.
Essaies ceci
Const Plage = "M37:AI147"
Const coco = "AI1:AI150"
Sub ok()
Dim paef As Range, m As Date, obj As Object
Dim codeb As Long, cofin As Long, lideb As Long, lifin As Long
m = Application.WorksheetFunction.Max(Range(codate))
Set obj = Range(codate).Find(m, , , xlWhole)
lideb = obj.Row
lifin = Range(Split(Plage, ":")(1)).Row
codeb = Range(Split(Plage, ":")(0)).Column
cofin = Range(Split(Plage, ":")(1)).Column
Set paef = Range(Cells(lideb, codeb), Cells(lifin, cofin))
paef.Value = ""
paef.Borders.LineStyle = xlNone
paef.Interior.ColorIndex = 2
End Sub
Cdlmnt
Bonjour ccm81
Pour la suppression recherchée j'avais toujours des messages d'erreur lorsque le remplissage à partir de la ligne 837 était présent. J 'ai fini par déplacé la plage M162:AI2004 de façon à laisser cette plage vide. La macro fonctionne alors de cette manière (pourquoi?).
La macro transforme bien la coloration du fond des cellules colorées en fond blanc.
Cordialement
Pour la suppression recherchée j'avais toujours des messages d'erreur lorsque le remplissage à partir de la ligne 837 était présent. J 'ai fini par déplacé la plage M162:AI2004 de façon à laisser cette plage vide. La macro fonctionne alors de cette manière (pourquoi?).
La macro transforme bien la coloration du fond des cellules colorées en fond blanc.
Cordialement
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
Modifié par ccm81 le 26/11/2015 à 14:00
Modifié par ccm81 le 26/11/2015 à 14:00
Il y avait un bug ici (un collage prématuré !)
Cdlmnt
Const Plage = "M37:AI147"
Const coco = "AI1:AI150"
Sub ok()
Dim paef As Range, m As Date, obj As Object
Dim codeb As Long, cofin As Long, lideb As Long, lifin As Long
m = Application.WorksheetFunction.Max(Range(coco))
Set obj = Range(coco).Find(m, , , xlWhole)
lideb = obj.Row
lifin = Range(Split(Plage, ":")(1)).Row
codeb = Range(Split(Plage, ":")(0)).Column
cofin = Range(Split(Plage, ":")(1)).Column
Set paef = Range(Cells(lideb, codeb), Cells(lifin, cofin))
paef.Value = ""
paef.Borders.LineStyle = xlNone
paef.Interior.ColorIndex = 2
End Sub
Cdlmnt
Bonjour ccm81
Le message d'erreur 1004 s'affiche :"Impossible de lire la propriété de la classe Worksheet.fonction"
Cdlmt
Le message d'erreur 1004 s'affiche :"Impossible de lire la propriété de la classe Worksheet.fonction"
Cdlmt
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 428
27 nov. 2015 à 10:01
27 nov. 2015 à 10:01
Tu as bien défini la plage coco ?
Const coco = "AI1:AI150"
Const coco = "AI1:AI150"