Mise en forme de lignes vides

cri732

XLDnaute Nouveau
Bonjour,

J'ai un message d'erreur 1004 qui apparaît lors de l'exécution du code dans le fichier que j'ai joint.
En fait, j'aimerais mettre en forme toutes les lignes vides de mon tableau.
Les contraintes sont :
- Les lignes vides ne seront pas toujours au même endroit en fonction de mes divers tableaux
- En fonction de la valeur de la cellule C qui se trouve juste au-dessus de la ligne vide, la mise en forme ne sera pas la même.

Le code qui me pose problème est dans VBAProject (Mise en forme tableau test3.xls), Module 1.

J'espère que je suis clair.
Dans le cas contraire, n'hésitez pas à me le dire que je puisse essayer de reformuler.

Merci par avance pour votre aide.
 

Pièces jointes

  • Mise en forme tableau test3.xls
    29 KB · Affichages: 37
  • Mise en forme tableau test3.xls
    29 KB · Affichages: 41
  • Mise en forme tableau test3.xls
    29 KB · Affichages: 41

Papou-net

XLDnaute Barbatruc
Re : Mise en forme de lignes vides

Bonjour cri732,

Voici ton fichier avec la macro modifiée.

J'ai revu sa structure complète et modifié la boucle de balayage des cellules, ce qui devrait améliorer la rapidité d'exécution du code.

Cordialement.
 

Pièces jointes

  • Copie de Mise en forme tableau test3.xls
    47.5 KB · Affichages: 29

cri732

XLDnaute Nouveau
Re : Mise en forme de lignes vides

Bonjour Papou-net

Je te remercie pour ta réponse qui a en plus été très efficace.
Il me reste juste un petit problème, en fait, la partie du code où il y a écrit If lignevide <> "HS*" ..., en fait il me faudrait effectivement cette mise en forme quand la cellule "C" de la ligne juste au-dessus de celle qui est vide contient "HS" etc...
Par contre, si cette fameuse cellule "C" contient "HS" etc, je voudrais une autre mise en forme.
Dans ce que j'ai vu, tu n'as pas changé cette dernière mise à jour mais ça ne le fait pas.
Cela viendrait-il du fait que je déclare mal le fait que ce soit contient les valeurs HS etc...
Comme je sens que je n'ai pas été clair, je vais t'envoyer un tableau comme il devrait être.
 

Pièces jointes

  • Mise en forme tableau test3.xls
    39.5 KB · Affichages: 32
  • Mise en forme tableau test3.xls
    39.5 KB · Affichages: 36
  • Mise en forme tableau test3.xls
    39.5 KB · Affichages: 34

Papou-net

XLDnaute Barbatruc
Re : Mise en forme de lignes vides

RE : cri732,

Voici le code corrigé.

Tu remarqueras que les variables Plage3 et Plage4 ne sont plus utiles, donc supprimées.

Espérant avoir résolu le problème.

Cordialement.
 

Pièces jointes

  • Copie 01 de Mise en forme tableau test3-1.xls
    42.5 KB · Affichages: 30

cri732

XLDnaute Nouveau
Re : Mise en forme de lignes vides

RE Papou-net

Quel talent!!!
Je te remercie vraiment pour la solution.
Par contre, je me posais une question sur cette ligne : For Each Cel In Range("C2:" & lignevide.Address).SpecialCells(xlCellTypeBlanks)
Pourrais-tu me dire ce qu'elle veut dire, s'il te plaît?
Je voudrais me perfectionner dans les macros mais je n'arrive pas à comprendre cette ligne.
Je te remercie encore pour le code.
Salutations.
 

Papou-net

XLDnaute Barbatruc
Re : Mise en forme de lignes vides

RE Papou-net

Quel talent!!!
Je te remercie vraiment pour la solution.
Par contre, je me posais une question sur cette ligne : For Each Cel In Range("C2:" & lignevide.Address).SpecialCells(xlCellTypeBlanks)
Pourrais-tu me dire ce qu'elle veut dire, s'il te plaît?
Je voudrais me perfectionner dans les macros mais je n'arrive pas à comprendre cette ligne.
Je te remercie encore pour le code.
Salutations.

RE :

Merci pour le compliment.

Cette ligne pourrait se traduire ainsi :

Pour chaque cellule de la plage C2:C(lignevide) dont le contenu est vide (xlCellTypeBlanks).

Si tu sélectionnes SpecialCells, tu tapes F1 puis tu cliques sur xlCellType, tu obtiendras tous les paramètres attachés à cette fonction.

Voici une copie écran de l'aide Excel:

SpecialCells, méthode

Voir aussi S'applique àExemple

Cette méthode renvoie un objet Range qui représente toutes les cellules correspondant au type et à la valeur spécifiés. Objet Range.
expression.SpecialCells(Type, Value)
expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

Type Argument XlCellType obligatoire. Cellules à inclure.
XlCellType peut être l'une de ces constantes XlCellType.
xlCellTypeAllFormatConditions. Cellules de n'importe quel format
xlCellTypeAllValidation. Cellules présentant des critères de validation
xlCellTypeBlanks. Cellules vides
xlCellTypeComments. Cellules contenant des commentaires
xlCellTypeConstants. Cellules contenant des constantes
xlCellTypeFormulas. Cellules contenant des formules
xlCellTypeLastCell. Dernière cellule dans la plage utilisée
xlCellTypeSameFormatConditions. Cellules de même format
xlCellTypeSameValidation. Cellules présentant les mêmes critères de validation
xlCellTypeVisible. Toutes les cellules visibles


Value Argument de type Variant facultatif. Si Type a la valeur xlCellTypeConstants ou xlCellTypeFormulas, cet argument est utilisé pour déterminer quels types de cellules inclure dans le résultat. Ces valeurs peuvent être ajoutées ensemble pour renvoyer plusieurs types. Par défaut, toutes les constantes ou formules sont sélectionnées, quel que soit leur type. Il peut s'agir de l'une des constantes XlSpecialCellsValue suivantes :

XlSpecialCellsValue peut être l'une de ces constantes XlSpecialCellsValue.
xlErrors
xlLogical
xlNumbers xlTextValues


[h=2]Exemple[/h] Cet exemple montre comment sélectionner la dernière cellule de la plage utilisée dans la feuille Sheet1.

Worksheets("Sheet1").Activate ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
Cordialement.
 

Discussions similaires

Réponses
8
Affichages
181

Statistiques des forums

Discussions
312 681
Messages
2 090 870
Membres
104 681
dernier inscrit
Gtcheumawe