VBA manip de feuilles excel

Bonjour,

J'ai un code simple qui crée une feuille excel à partir d'une autre et je veux garder certaines données mais je reçois un message d'erreur:

Sub CustomerCheck()
Sheets("All_Prices").Select
Range("A1").Select
Dim letter As Range
Dim r As Range
Dim strg As String
Dim strg2 As String

For Each letter In Range("A1", Range("IV1").End(xlToLeft))
If letter.Font.Bold Then
strg = letter.Text
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = strg
With Sheets(strg)
'....
End With

-> For Each r In Sheets(All_Prices).Range("A1", Range("A65536").End(xlUp))
If r.Font.Bold Then strg2 = r.Text
Sheets(strg).r.Text = strg2

Next r
End If
Next letter
End Sub

Erreur d'indice qui n'est pas dans la sélection? Merci pour vos lumières!
Julia

3 réponses

  1. Bonjour,

    Il manque les ":

    For Each r In Sheets("All_Prices").Range("A1", Range("A65536").End(xlUp))

    ;o)
    1. Merci Polux, en effet...
      Mais ça ne marche toujours pas :

      For Each r In Sheets("All_Prices").Range("A1", Range("A65536").End(xlUp))
      If r.Font.Bold Then strg2 = r.Text
      Sheets(strg).r.Text = strg2

      Next r
      End If
      ....
      --> erreur 1004 / définie par l'application ou par l'objet

      La première itération fonctionne, une nouvelle feuille rfenommée et mise en page apparait mais on ne passe pas "for each / next r"
      1. Ça doit coincer ici: Sheets(strg).r.Text = strg2

        Peut être comme ça:
        Sheets(strg).Cells(r.Row,r.Column).Value = strg2

        Je n'ai pas testé.

        ;o)