VBA : instructions sur plusieurs feuilles

Résolu
Marie155 Messages postés 11 Statut Membre -  
Marie155 Messages postés 11 Statut Membre -
Bonjour,

Ma requête est simple je voudrais en fonction de la valeur d'une cellule de LA feuille donnée collorier des cellules pour chacune des feuilles de mon classeur sauf une j'ai testé ca mais ca ne marche pas ca ne marche que pour une feuille :s

"For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "Feuil2" Then

nbhtot = Ws.Range("A5").Value
nbltot = nbhtot * 12

Range(Cells(11, 7), Cells(11 + nbre_cel - 1, 7)).Interior.Color = RGB(255, 0, 0)
Range(Cells(11 + nbre_cel, 7), Cells(11 + nbre_cel - 1 + 12 * 7, 7)).Interior.Color = RGB(255, 255, 0)
Range(Cells(11 + nbre_cel + 12 * 7, 7), Cells(11 + nbre_cel - 1 + 24 * 7, 7)).Interior.Color = RGB(0, 0, 0)

End If
Next Ws
"

J'ai testé Ws.Range(Cells(11, 7), Cells(11 + nbre_cel - 1, 7)).Interior.Color = RGB(255, 0, 0) mais ca ne marche pas ...

Help pleaaase !!!

Merciii beaucoup !!

6 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    essaies ceci (rectifies les coordonnées des Cells)

    For Each ws In ThisWorkbook.Worksheets
      If ws.Name <> "Feuil2" Then
       nbhtot = ws.Range("A5").Value
       nbltot = nbhtot * 12
        With ws
          .Range(.Cells(11, 7), .Cells(11 + nbre_cel - 1, 7)).Interior.Color = RGB(255, 0, 0)
          .Range(.Cells(11 + nbre_cel, 7), .Cells(11 + nbre_cel + 2, 7)).Interior.Color = RGB(255, 255, 0)
          .Range(.Cells(11 + nbre_cel, 7), .Cells(11 + nbre_cel + 2, 7)).Interior.Color = RGB(0, 0, 0)
        End With
      End If
    Next ws

    bonne suite
    1
    1. Marie155 Messages postés 11 Statut Membre
       
      C'est ça !!! Un grand grand merci !!! :)
      0
    2. Marie155 Messages postés 11 Statut Membre
       
      Tant que j'y suis, (je t'avoue que là je n'ai pas cherché). J'ai des cellules qui indiquent des heures genres 31h30 32h etc et je souhaite récupérer la valeur des cellules mais de sortes que quand je les récupère pour 31h30 j'obtienne 31.5 ou pour 32h j'obtiens 32. tu aurais une idéee à ce sujet ?
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Comme ceci?

    Dim hh 
    hh = Range("A2").Value 
    hh = hh * 24 
    MsgBox hh

    et si ce n'est pas en VBA c'est la même chose
    A3=A2*24 (A3 formatée en format nombre bien sûr)

    bonne suite
    0
  3. Marie155 Messages postés 11 Statut Membre
     
    Hmm non pas tellement

    Admettons en A2 il y a d'inscrit "32h30"

    Dans mon code j'aimerai récupéré cette valeur mais de la forme "32.5" pour la manipuler par la suite. En fait, 32h30 c'est la forme visuelle pr faciliter la lecture à l'utilisateur mais moi dans mon programme il me faudrait 32.5 (h).
    Je ne sais pas si je suis claire...

    Merci pour tout, vraiment
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Dim hh As Single, hhh As String
    hh = Range("A2").Value
    hh = hh * 24
    hhh = hh & "(h)"
    hhh = Replace(hhh, ",", ".")
    MsgBox hhh

    mais attention hhh est maintenant non numérique

    bon courage
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marie155 Messages postés 11 Statut Membre
     
    Hmm ba nn, en fait je voudrais juste convertir ma valeur "1h30" en "1.5", "1h45" en "1.75"

    Si je sélectionne la cellule qui contient "1h30" je recherche si dans ce string du coup il y a l'expression régulière "h" et la en fonction des cas je le remplace par 0.5 ou 0.75 suivant la valeur après le h puis que je force tt ca en Integer ca m'archerait ?
    0
  7. Marie155 Messages postés 11 Statut Membre
     
    C'est bon j'ai trouvé merci encore pour ton aide ccm81
    0