Vba
Fermé
maynou24
-
11 avril 2019 à 18:41
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 - 12 avril 2019 à 12:01
yg_be Messages postés 23331 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 - 12 avril 2019 à 12:01
2 réponses
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
Ambassadeur
1 551
11 avril 2019 à 20:47
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
as-tu mis
option expliciten début de module?
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
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
1 551
12 avril 2019 à 08:37
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?
quelle est la valeur de a au moment où tu as l'erreur?
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
1 551
>
maynou24
12 avril 2019 à 09:24
12 avril 2019 à 09:24
quand tu partages du code, merci de choisir le type "basic" pour du vba.
suggestion:
c'est aussi une bonne idée de faire:
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))