Bonjour,
Existe-t-il un moyen en vba de spécifier pour chaque cellule d'une plage, que lorsque la valeur de la cellule est nulle, mettre 0 sans avoir à parcourir chaque cellule?
Merci pour votre aide
Version imprimable
Bonjour,
Existe-t-il un moyen en vba de spécifier pour chaque cellule d'une plage, que lorsque la valeur de la cellule est nulle, mettre 0 sans avoir à parcourir chaque cellule?
Merci pour votre aide
Bonsoir
Je ne pense pas, sauf peut-être à utiliser une requête sql en DAO, mais je pense que c'est plus compliqué à mettre en place et plus long à exécuter qu'une itération sur chaque cellule...
En quoi cela te gêne-t'il de tester chaque cellule?
C'était principalement pour maximiser le temps que prend la macro pour faire ma mise en page, vu que je dois appliquer ce format sur 100 colonnes.
Merci pour votre aide
Ok, mais tu n'est pas obligé d'itérer sur les 65536 lignes de tes 100 colonnes.
Peux-tu préciser ce que tu souhaites réaliser et éventuellement donner ton code?
Bien en fait j'ai un onglet qui regroupe des données provenant d'excel. J'ai une macro qui, dans un autre onglet, effectue la mise en page de cette table. Elle va chercher les infos dans la table brute et les copie dans l'onglet formaté.
Vu que le positionnement des colonnes ne change pas, je recopie la table ligne par ligne. De là pourquoi je voulais appliquer le format sur une plage de données plutôt que sur chaque cellule.
Heu... Pas tout compris (il est 21h23...)
Peux-tu donner ton code?
En fait j'ai exporter depuis excel une table de 100 colonnes sur X lignes.
Dans excel je parcours ces lignes et je les recopie dans un autre onglet en y ajoutant des entêtes ,en formatant les donner et en gérant la mise en page pour l'impression.
En fait, je ne saurais pas quoi vous montrer comme code puisque ce que je souhaitais faire ne touche à rien de ce qui est déjà fait.
C'est pas bien grave, je vais appliquer le format une cellule à la fois.
Merci pour votre aide
Tu peux formater plusieurs cellules en même temps.
colorie en rouge toutes les cellules de A1:B25. Le plus "compliqué" étant de pouvoir déterminer "facilement" les plages qui doivent avoir le même formatCode:
1
2 range("a1:b25").interior.color=vbred
Ça ça va. J'utilise déjà cette façon de faire
Mais ce que je cherche à faire c'est de spécifier à toute ces mêmes cellules que si elles sont vides, bien il faut mettre 0 comme valeur.Code:
1
2
3
4
5
6
7
8
9
10 With Worksheets("Prévisions").Range(Worksheets("Prévisions").Cells(noLigneTraitement, COLFERME), _ Worksheets("Prévisions").Cells(noLigneTraitement, COLFIN)) .Value = Worksheets("ModEntete").Range("EnteteType").Value .Font.Bold = True .Borders.LineStyle = xlContinuous .Interior.ColorIndex = 35 .Columns.AutoFit End With
Tu as raison. J'avais oublié cette contrainte du 0.
Je crois malheureusement qu'il n'y a pas d'autre possibilité que d'itérer sur chaque cellule...
Désolé :cry:
Tout de même merci pour votre aide!