Vba

maynou24 -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je veux définir une plage de cellule, j'ai écrit de code
il bug : Application-defined or object-defined error

Set source1 = Sheets("PIP").Range(Cells(2, 1), Cells(a - 1, 1))

quelqu'un peut m'aider ?
Configuration: Windows / Chrome 73.0.3683.103

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, je suppose que tu ne montres qu'une partie de ton code, est-ce le cas?
    as-tu mis
    option explicit
    en début de module?
    0
  2. maynou24
     
    voilàa la totalité du code

    Private Sub CommandButton4_Click()
    Dim cell As Range
    Dim rg As Range
    Dim a As Long
    Dim derlig As Long
    Dim source1 As Range
    Dim dest As Range
    'Dim PIP As Worksheet

    For Each cell In Sheets("PIP").Range("A2:A" & Rows.Count)
    If cell.Value = "" Then
    a = cell.Row
    Exit For
    End If
    Next

    Set source1 = Sheets("PIP").Range(Cells(2, 1), Cells(a - 1, 1))
    derlig = Sheets("His").Range("N1048576").End(xlUp).Row + 1
    Set dest = Sheets("His").Cells(derlig, 14)
    For Each rg In source
    dest = rg
    Cells(rg.Row, 5).Copy Sheets("his").Cells(derlig, 15)
    Sheets("His").Cells(derlig, 16) = Date
    Set dest = dest.Offset(1, 0)
    next
    end sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      as-tu mis option explicit en début de module?
      quelle est la valeur de a au moment où tu as l'erreur?
      0
    2. maynou24
       
      a = 9 est c'est la valeur que je cherche en fait , non je n'ai pas mis option explicit
      0
    3. maynou24
       
      je l'ai mis tout à l'heure mais ça ne fonctionne pas aussi
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > maynou24
       
      quand tu partages du code, merci de choisir le type "basic" pour du vba.
      suggestion:
      Set source1 = Range(Sheets("PIP").Cells(2, 1), Sheets("PIP").Cells(a - 1, 1))

      c'est aussi une bonne idée de faire:
      Dim PIP As Worksheet
      Set PIP = Sheets("PIP")
      Set source1 = Range(PIP.Cells(2, 1), PIP.Cells(a - 1, 1))
      0
    5. maynou24
       
      merci pour votre interaction, mais la même erreur apparait encore :(
      0