VBA Excel - Mise en forme à une colonne

Résolu
Zawzou -  
 Zawzou -
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 ?

3 réponses

  1. Paf
     
    bonsoir

    quelle version utilises tu?

    sur 2003, le message d'erreur intervient au-delà de 256 colonnes (limite d'Excel 2003)
    A+
    1
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      PS : Avec Excel 2007 ou 2010 (avant il n'y avait que 256 colonnes pas 999)
      0
  3. Zawzou
     
    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