Remise par defaut de lignes

Résolu/Fermé
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016 - 13 avril 2016 à 14:31
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016 - 18 avril 2016 à 08:30
Bonjour,

J'essaye de faire une macro vba qui va remettre par défaut tout le documents plus ou moins. Ce que j'entend par "par défaut" c'est que certaine ligne suite à d'autre macro devienne en gras ou change de couleur. En plus de nettoyer le contenu.

Sub Bouton2_Clic()

Dim rangeF1 As Range, cellF1 As Range
Dim LastLineFeuil1 As Long

LastLineFeuil1 = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
Set rangeF1 = Sheets("Feuil2").Range("B4:B" & LastLineFeuil1)

For Each cellF1 In rangeF1
Worksheets(1).Range("B" & cellF1).EntireRow.ClearContents
Worksheets(1).Range("B" & cellF1).EntireRow.Interior.ColorIndex = 2
Worksheets(1).Range("B" & cellF1).EntireRow.Font.Bold = False
Next
End Sub


Ça plante par une erreur 1004 la question est pourquoi je ne peux pas faire ça ?

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 avril 2016 à 15:48
Bonjour Shadorb, bonjour le forum,

Je pense qu'il y a une erreur dans la ligne :
Set rangeF1 = Sheets("Feuil2").Range("B4:B" & LastLineFeuil1)

qui devrait être, il me semble,
Set rangeF1 = Sheets("Feuil1").Range("B4:B" & LastLineFeuil1)


Sinon je t'ai répondu ici et tu n'as même pas daigné répondre. Pas très sympa ça !...
0
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par Shadorb le 13/04/2016 à 16:15
J'ai changer entre temps et le problème reste le même :/.

Concernant l'autre sujet, désolé de pas avoir répondu en faite c'était carrément un autre problème d'une autre partie du code mais c'était cool de m'aider !
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 avril 2016 à 17:22
Re,

En fait j'ai regardé ton code trop vite. À partir du moment où la plage est définie tu n'as plus besoin de boucler sur toutes les cellules de celle-ci. Ton code devient :

Sub Bouton2_Clic()
Dim O As Worksheet
Dim rangeF1 As Range
Dim LastLineFeuil1 As Long

Set O = Sheets("Feuil1")
LastLineFeuil1 = O.Range("B" & Rows.Count).End(xlUp).Row
Set rangeF1 = O.Range("B4:B" & LastLineFeuil1)
rangeF1.EntireRow.ClearContents
rangeF1.EntireRow.Interior.ColorIndex = 2
rangeF1.EntireRow.Font.Bold = False
End Sub

0
Utilisateur anonyme
13 avril 2016 à 17:51
Bonjour Shadorb et ThauTheme,

Si Bouton2 est sur Feuil1, inutile de préciser la feuille puisque la macro sera forcément lancée à partir de Feuil1.

Le code peut être bien simplifié, notamment grâce aux 2 instructions
With ... End With et à la « factorisation » de EntireRow :

Sub Bouton2_Clic()

Dim LastLineFeuil1 As Long
LastLineFeuil1 = Range("B" & Rows.Count).End(xlUp).Row

With Range("B4:B" & LastLineFeuil1).EntireRow
  .ClearContents: .Interior.ColorIndex = 2: .Font.Bold = False
End With

End Sub

Cordialement.  😊
0
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par Shadorb le 14/04/2016 à 10:01
Génial, ça marche parfaitement bien, merci à vous deux, cependant avec ces instructions ça me détruit également les traits des colonnes. Comment remédier à ca ?

En gros j'ai plus que les traits des lignes on ne distingue donc plus facilement les cellules.
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
14 avril 2016 à 10:33
Re,

Non, les codes ne suppriment pas les contours !... Clear l'aurait fait mais pas ClearContents...
0
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par Shadorb le 14/04/2016 à 11:50
http://img15.hostingpics.net/pics/415264colonneefface.png

Je veux pas faire le mec de mauvaise foi mais alors comment ai-je obtenu ce résultat ?
0
Utilisateur anonyme > Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016
14 avril 2016 à 13:37
Bonjour Shadorb,

1) Je suis content que tu as aimé le code de ThauTheme ainsi que
mon optimisation.

2) Je confirme la réponse de ThauTheme : ce n'est pas ClearContents
qui a pu effacer tes contours !

-----------------------------------------------------------------------------------------------------

3) Avant de voir ton image jointe :

a) Je t'ai cru quand tu nous a indiqué ce problème, et je suis sûr que
ThauTheme aussi n'a pas mis ta parole en doute : tu n'aurais aucun
intérêt à inventer un problème inexistant !

b) Je me suis dit : « Je sais que ça ne vient pas de ClearContents ; mais
c'est bizarre : si tu avais écrit : « ça me détruit les traits des colonnes et
les traits des lignes », j'aurais pensé que tu as simplement masqué
le quadrillage de la feuille de calcul (par inadvertance).

-----------------------------------------------------------------------------------------------------

4) Après avoir vu ton image jointe :

a) Je sais que tu as appliqué un filtre automatique car sur la première ligne
d'en-têtes, on peut voir les petites flèches caractéristiques qui permettent
de sélectionner des critères de sélection.

b) Je pense que ton problème vient de là, même si normalement, le filtre
automatique n'enlève pas les contours de colonnes. En tout cas, c'est
très simple à vérifier : il te suffit de supprimer ce filtre automatique, en le
désélectionnant au même endroit où tu l'avais sélectionné avant.

Si ça venait bien de là, tous tes contours de colonnes seront réapparus.
Pense à rafraîchir l'écran si besoin.

c) Si ça ne vient pas de là, comme la couleur de fond de l'écran est blanc,
peut-être que la couleur des contours de colonnes est passée au blanc :
blanc sur blanc, ça ne se voit pas : c'est invisible !

d) Tu as peut-être appliqué (volontairement ou par accident), une mise en
forme automatique de tableau différente de celle que tu avais avant ; car
certaines de ces mises en formes automatiques ont cette apparence.

e) J'espère que ce n'est pas un bug de ton logiciel Excel !
f) J'espère aussi que ton PC n'a pas attrapé de virus !

Si ça ne s'arrange pas, je n'ai vraiment pas d'autre idée.

J'espère quand même que les pistes que je t'ai donné vont t'aider
à résoudre ce problème. Si ça s'arrange ou si tu trouves une autre
solution, tiens-moi au courant !  😊
 
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016
14 avril 2016 à 13:45
Re,

Quand tu crèves un pneu, est-ce que tu amènes à ton garagiste une photo de ton pneu crevé ou la roue ?
Pareil, si au lieu de nous mettre une image en pièce jointe tu avais mis ton fichier, on pourrais t'en dire davantage...
0
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016 > ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022
Modifié par Shadorb le 14/04/2016 à 14:12
Pour vous l'envoyer il faudrait que je vire toutes les données de mon entreprise qu'il y'a dedans.
J'avoue que j'ai un peu la flemme :/
Mais merci bien tout marche.
0
Shadorb Messages postés 53 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 20 juin 2016 > Utilisateur anonyme
14 avril 2016 à 14:12
Merci bien, les border étaient effectivement passé en blanc aucune idée du pourquoi, surement
rangeF1.EntireRow.Interior.ColorIndex = 2
qui a du le faire.

Du coup tout marche parfaitement merci bien.
0