Problème avec Cells.

Résolu
Bonjour,

j'ai un problème avec cells, je n'arrive pas a récupérer le texte de la première
ligne.

Sub Macro1()
Dim nomCherche As String
Dim RESULT As Variant
Dim R As Integer
Dim i As Integer
Dim s As Integer
Dim U As String
Dim V As String
s = 1

U = Sheets("test").Range("K2").Column
Sheets("test").Select

Set RESULT = Range("b2:b300").Find(What:=nomCherche, LookIn:=xlValues)

Sheets("c").Range("a15").NumberFormat = "0000"
Sheets("c").Range("b15").Value = RESULT.Offset(0, -1).Value
Sheets("c").Select
Range("b15").Select

For i = 9 To 60
If RESULT.Offset(0, i).Value = "" Then
U = U + 1
GoTo SUITE
Else

V = Cells(1, U).Value ' y a t il une erreur sur cette ligne

ActiveCell.Offset(0, s).Value = V
ActiveCell.Offset(1, s).Value = RESULT.Offset(0, i).Value
U = U + 1
s = s + 1
SUITE:
End If

Next i

End Sub

Merci d'avance

5 réponses

  1. Bonjour,

    Dans un premier temps,
    Set RESULT = Range("b2:b300").Find(What:=<gras>nomCherche</gras>, LookIn:=xlValues)
    

    Y a pas de
    nomCherche="quelquechose"
    !!
    0
    1. Bonjpour,
      désolé, en épurant le code, j' ai supprimé la ligne.
      La boucle me permet de récupérer le titre de la première cellule de chaque colonne par rapport à la valeur de la référence en Sheets("c").Range("b15").Value. Si la cellule de référence + offset est vide la boucle recherche la valeur de cellule de la colonne suivante. la boucle fonctionne bien pour les valeurs de cellules, mais pas pour récupérer les titres.

      Merci pour la rapidité de votre réponse.

      Sub Macro1()
      Dim nomCherche As String
      Dim RESULT As Variant
      Dim R As Integer
      Dim i As Integer
      Dim s As Integer
      Dim U As String
      Dim V As String
      s = 1

      U = Sheets("test").Range("K2").Column
      Sheets("test").Select

      Nom cherche = Sheets("c").Range("b15").Value

      Set RESULT = Range("b2:b300").Find(What:=nomCherche, LookIn:=xlValues)

      Sheets("c").Range("a15").NumberFormat = "0000"
      Sheets("c").Range("b15").Value = RESULT.Offset(0, -1).Value
      Sheets("c").Select
      Range("b15").Select

      For i = 9 To 60
      If RESULT.Offset(0, i).Value = "" Then
      U = U + 1
      GoTo SUITE
      Else

      V = Cells(1, U).Value ' y a t il une erreur sur cette ligne

      ActiveCell.Offset(0, s).Value = V
      ActiveCell.Offset(1, s).Value = RESULT.Offset(0, i).Value
      U = U + 1
      s = s + 1
      SUITE:
      End If

      Next i

      End Sub
      0
      1. Contributeur Ambassadeur
        bonjour, suggestions:
        V = Sheets("?").Cells(1, U).Value

        et supprimer les instructions
        .Select

        et changer
        ActiveCel
        l en autre chose
        et supprimer le
        Goto
        0
        1. Bonjour,
          acticecell me permet de changer de cellule pour réécrire les valeurs sur une autre feuille, le goto lui empêche de recopier les cellules vides. le code
          V = Sheets("test").Cells(1, U).Value ' erreur 1004
          j'avais déjà essayé ce code.

          merci
          0
          1. Contributeur
            bonjour

            Sheets("test").Range("K2").Column renvoie un nombre (integer
            U est donc un nombre
            (a ce propos, tu pourrais écrire U=11 + simplement !)
            dans tes déclarations U est du texte (dim U as string)


            Dim nomCherche As String
            ok
            pourquoi écrire dans le code
            nom cherche (espace ?)

            mais il y a beaucoup d'autres incohérences dans ton code

             Michel
            0
            1. Bonjour,

              dans mon vrai code nomcherche est sans espace, par contre j'ai changer dim U as string en integer, cela fonctionne.
              Un très grand merci
              Bonne journée
              0