Vba

Fermé
maynou24 - 11 avril 2019 à 18:41
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 12 avril 2019 à 12:01
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

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
11 avril 2019 à 20:47
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
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
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
12 avril 2019 à 08:37
as-tu mis option explicit en début de module?
quelle est la valeur de a au moment où tu as l'erreur?
0
a = 9 est c'est la valeur que je cherche en fait , non je n'ai pas mis option explicit
0
je l'ai mis tout à l'heure mais ça ne fonctionne pas aussi
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > maynou24
12 avril 2019 à 09:24
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
merci pour votre interaction, mais la même erreur apparait encore :(
0