Passage de données d'une feuille à une autre en fonction d'une cellule
f
Bonjour,
J'ai vu dans le forum des réponses à cette même question mais je n'arrive pas à appliquer les solutions,
Pour info il n'y a pas de message d'erreur, se sont les bonnes données qui sont sélectionnées quand je lance ma macro en pas à pas, mais les données ne sont pas transcrite
soyer indulgent c'est mon premier code VBA, merci de votre aide ^^
Public Const P1_ColEcart = 1
Public Const P1_ColDoseHeure = 2
Public Const P1_ColDatePrev = 3
Public Const P1_ColTempsProd = 4
Public Const P1_ColArret = 5
Public Const P1_ColDatefin = 6
Public Const P1_ColQxHeure = 7
Public Const P1_ColNettoyage = 8
Public Const P1_ColCreaDate = 9
Public Const P1_ColESP = 10
Public Const P1_ColVar = 11
'Public Const P1_Col = 12
Public Const P1_ColCodTrait = 13
Public Const P1_ColTrait = 14
Public Const P1_ColER = 15
Public Const P1_ColNumOrdre = 16
Public Const P1_ColNumLot = 17
Public Const P1_ColNBSac = 18
Public Const P1_ColPdsSac = 19
Public Const P1_ColPdsLot = 20
Public Const P1_ColRaiSoc = 21
Public Const P1_ColCodSac = 22
Public Const P1_ColOfClt = 23
Public Const P1_ColNBPal = 24
Public Const P1_ColCodConstitPal = 25
Public Const P1_ColPalettisation = 26
Public Const P1_Rg = "A5:Z"
Public Const P1_av_LgDebut = 5
Public Const EN_1920_ColNumOrdre = 1
Public Const EN_1920_ColCreaBy = 2
Public Const EN_1920_ColCreaDate = 3
Public Const EN_1920_ColNumLot = 4
Public Const EN_1920_ColTypeEns = 5
Public Const EN_1920_ColPMG = 6
Public Const EN_1920_ColGRK = 7
Public Const EN_1920_ColNBSac = 8
Public Const EN_1920_ColNBPal = 9
Public Const EN_1920_ColPdsSac = 10
Public Const EN_1920_ColPdsLot = 11
Public Const EN_1920_ColCodeEsp = 12
Public Const EN_1920_ColESP = 13
Public Const EN_1920_ColCodeVar = 14
Public Const EN_1920_ColVar = 15
Public Const EN_1920_ColRaiSoc = 16
Public Const EN_1920_ColER = 17
Public Const EN_1920_ColCodSac = 18
Public Const EN_1920_ColCodConstitPal = 19
Public Const EN_1920_ColPalettisation = 20
Public Const EN_1920_ColCodCR = 21
Public Const EN_1920_ColCodEtatOF = 22
Public Const EN_1920_ColOfClt = 23
Public Const EN_1920_ColCodTrait = 24
Public Const EN_1920_ColTrait = 25
Public Const EN_1920_ColDateFin = 26
Public Const EN_1920_Rg = "A2:Z"
Sub renseignerchamp()
Dim ligne As Long
Dim numOrdre As String
Dim dernLigne As Long
Dim i As Long
Dim P1() As Variant
Dim stockreq() As Variant
Dim b As Long
Sheets("ENSACHAGE").Select
With Sheets("ENSACHAGE")
If .FilterMode Then
.ShowAllData
End If
dernLigne = .Cells.Find("*", [A1], , , 1, 2).Row
stockreq() = Range(EN_1920_Rg & dernLigne)
End With
Sheets("P1").Select
With Sheets("P1")
If .FilterMode Then
.ShowAllData
End If
dernLigne = .Cells.Find("*", [A1], , , 1, 2).Row
P1() = Range(P1_Rg & dernLigne)
End With
Sheets("P1").Select
'Boucle qui s'exécute tant qu'il y quelque chose sur ligne
For ligne = 1 To UBound(P1, 1)
numOrdre = P1(ligne, P1_ColNumOrdre)
'Si le numéro d'ordre est vide, on passe directement à la ligne suivante.
If numOrdre <> "" Then
b = 0
For i = 1 To UBound(stockreq, 1)
If numOrdre = stockreq(i, EN_1920_ColNumOrdre) Then
b = i
i = UBound(stockreq, 1)
End If
Next i
'On enregistre les valeurs de la requête
'dans la colonne correspondante.
If b = 0 Then
P1(ligne, P1_ColDatefin) = 0
P1(ligne, P1_ColCreaDate) = 0
P1(ligne, P1_ColESP) = 0
P1(ligne, P1_ColVar) = 0
P1(ligne, P1_ColCodTrait) = 0
P1(ligne, P1_ColTrait) = 0
P1(ligne, P1_ColER) = 0
P1(ligne, P1_ColNumOrdre) = 0
P1(ligne, P1_ColNumLot) = 0
P1(ligne, P1_ColNBSac) = 0
P1(ligne, P1_ColPdsSac) = 0
P1(ligne, P1_ColPdsLot) = 0
P1(ligne, P1_ColRaiSoc) = 0
P1(ligne, P1_ColCodSac) = 0
P1(ligne, P1_ColOfClt) = 0
P1(ligne, P1_ColNBPal) = 0
P1(ligne, P1_ColCodConstitPal) = 0
P1(ligne, P1_ColPalettisation) = 0
Else
P1(ligne, P1_ColDatefin) = stockreq(b, EN_1920_ColDateFin)
P1(ligne, P1_ColCreaDate) = stockreq(b, EN_1920_ColCreaDate)
P1(ligne, P1_ColESP) = stockreq(b, EN_1920_ColESP)
P1(ligne, P1_ColVar) = stockreq(b, EN_1920_ColVar)
P1(ligne, P1_ColCodTrait) = stockreq(b, EN_1920_ColCodTrait)
P1(ligne, P1_ColTrait) = stockreq(b, EN_1920_ColTrait)
P1(ligne, P1_ColER) = stockreq(b, EN_1920_ColER)
P1(ligne, P1_ColNumLot) = stockreq(b, EN_1920_ColNumLot)
P1(ligne, P1_ColNBSac) = stockreq(b, EN_1920_ColNBSac)
P1(ligne, P1_ColPdsSac) = stockreq(b, EN_1920_ColPdsSac)
P1(ligne, P1_ColPdsLot) = stockreq(b, EN_1920_ColPdsLot)
P1(ligne, P1_ColRaiSoc) = stockreq(b, EN_1920_ColRaiSoc)
P1(ligne, P1_ColCodSac) = stockreq(b, EN_1920_ColCodSac)
P1(ligne, P1_ColOfClt) = stockreq(b, EN_1920_ColOfClt)
P1(ligne, P1_ColNBPal) = stockreq(b, EN_1920_ColNBPal)
P1(ligne, P1_ColCodConstitPal) = stockreq(b, EN_1920_ColCodConstitPal)
P1(ligne, P1_ColPalettisation) = stockreq(b, EN_1920_ColPalettisation)
End If
End If
Next ligne
End Sub
f
j'allais oublier, la solution est une chose mais j'aimerais que vous m’expliquer où je me suis planté
Bonjour,
Tu oublies semble-t-il de restituer les données de P1 dans la feuille de calcul !?
Cdlt.
f
Bonjour Jean-Eric,
Le but est de passer les données vers P1, depuis la feuille ensachage
f
Bonjour,
avez vous une idée de comment reporter les données ?
bonne journée