Bonsoir à tous,
J'ai un souci dans l'ecriture d'un code qui ne realise pas ce que je voudrais
j'ai un classeur 7 qui a en colonne c (c3:c15)des données concernant un stock Ce classeur est actualisé tous les jours . Ce stock je souhaiterai le transferer dans la colonne adequate du classeur 6 (stock mensuel). pour ce faire je prends la date du classeur 7 (c'est une aujourd'hui)qui se trouve en B1 je recherche la même date du mois en cours dans la ligne 1 du classeur 6 (de C3 à AG1 suivant le mois) et je colle les données à la suite de la date dans la même colonne
voici le code qui ne donne pas le résultat souhaité (rien ne se transfert
Merci pour votre aide et vos explication
J'ai un souci dans l'ecriture d'un code qui ne realise pas ce que je voudrais
j'ai un classeur 7 qui a en colonne c (c3:c15)des données concernant un stock Ce classeur est actualisé tous les jours . Ce stock je souhaiterai le transferer dans la colonne adequate du classeur 6 (stock mensuel). pour ce faire je prends la date du classeur 7 (c'est une aujourd'hui)qui se trouve en B1 je recherche la même date du mois en cours dans la ligne 1 du classeur 6 (de C3 à AG1 suivant le mois) et je colle les données à la suite de la date dans la même colonne
voici le code qui ne donne pas le résultat souhaité (rien ne se transfert
Code:
Sub actua()
Dim wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur7.xls")
Set wb2 = Workbooks("classeur6.xls")
Dim plage As Range, c As Range
Dim LastLig As Long
Dim idxDate As Variant
Dim i As Byte
LastLig = wb2.Sheets("LAG_Bestand").Range("C65536").End(xlUp).Row
Set plage = wb2.Sheets("LAG_Bestand").Range("C1:AG" & LastLig)
'LastLig = wb2.Sheets("LAG_Bestand").Range("A65536").End(xlUp).Row
'Set plage = wb2.Sheets("LAG_Bestand").Range("A7:A" & LastLig)
idxDate = EquivDate(wb1.Sheets("Warengruppen").Range("B1").Value, plage)
If idxDate > 0 Then Set c = plage.Cells(idxDate)
If Not c Is Nothing Then
For i = 1 To 13
c.Offset(0, i).Value = wb1.Sheets("Warengruppen").Range("C" & i + 13).Value
Next i
End If
Set c = Nothing
Set plage = Nothing
Code:
Function EquivDate(dte As Date, plage As Range) As Long
Dim idx
idx = Application.Match(CLng(dte), plage, 0)
If Not IsError(idx) Then EquivDate = idx
End Function