VBA Excel - Mise en forme à une colonne

Résolu/Fermé
Zawzou - Modifié par Zawzou le 23/08/2011 à 18:59
 Zawzou - 23 août 2011 à 21:52
Bonjour à tous,


Je vous expose le code que j'ai :

Dim ligne, colonne As Integer
ligne = 5
For colonne = 3 To 999

Worksheets("1er semestre").Activate


If ActiveSheet.Cells(ligne, colonne).Text = "S" Then
ActiveSheet.Cells(ligne, colonne).EntireColumn.Interior.ColorIndex = 15
colonne = colonne + 1
End If

If ActiveSheet.Cells(lig, colonne).Text = "D" Then
ActiveSheet.Cells(lig, colonne).EntireColumn.Interior.ColorIndex = 15
colonne = colonne + 1
End If

Next colonne





Le but est de mettre en gris une colonne entière si une de ses cellules (en l'occurrence ici à la 5ème ligne) contient la lettre S ou D. Quand j'active ce code ça fonctionne sur ma feuille, les colonnes se grisent, mais Excel me propose le Débogage avec une "Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet"

J'ai essayé d'autres codes, des mises en forme conditionnelles que j'ai ensuite essayé de "tirer" sur une colonne entière mais je bloque et ça fait 3 heures que ça dure... Mes recherches sur le net ayant étaient infructueuses je viens vous demander de l'aide... Où est mon erreur s'il vous plaît ? Et comment la réparer ? Ou simplement faut-il que je change mon code complètement ?



A voir également:

3 réponses

bonsoir

quelle version utilises tu?

sur 2003, le message d'erreur intervient au-delà de 256 colonnes (limite d'Excel 2003)
A+
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
23 août 2011 à 21:36
Bonjour,

Les erreurs sont les 2 fois :
colonne = colonne + 1
(
Essaie :
Sub Testt()
Dim colonne As Integer

  Worksheets("1er semestre").Activate
  For colonne = 3 To 999
    With ActiveSheet.Cells(5, colonne)
      If .Text = "S" Or .Text = "D" Then
        .EntireColumn.Interior.ColorIndex = 15
      End If
    End With
  Next colonne

End Sub
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
23 août 2011 à 21:38
PS : Avec Excel 2007 ou 2010 (avant il n'y avait que 256 colonnes pas 999)
0
Merci à vous deux !!!

Je travaille en effet sur 2003, du coup il y avait trop de ligne. De la même manière j'ai simplifié mon code du coup qui était bien compliqué comparé au votre !


Merci beaucoup encore je vais pouvoir passer à la suite ! Soulagée... :)
0