Bonjour tout le monde,
Je vous présente ce que je voudrais réaliser. Dans mon fichier "Annabelle.xlsx", il y a une feuille (TCD) sur laquelle est détenue un TCD et sur l'autre feuille (CC), je souhaiterais y coller certaines données présentes dans le TCD.
Les intitulés devront être copiés dans cet ordre :
Je me suis donc placé dans un module en commençant par ce code :
Function FichOuvert(F As String) As Boolean
'myDearFriend! - www.mdf-xlpages. (il faut rajouter com mais je l'ai enlevé car je n'ai pas le droit de mettre de lien)
On Error Resume Next
FichOuvert = Not Workbooks(F) Is Nothing
End Function
Sub Annabelle()
'Private Sub ET_Click()
Dim dl As Integer, derlig As Integer
Dim date1 As Date
Dim BL, POOL, QUANTITE, RECEPTIONNAIRE, N_IFCO As Integer
Dim REFERENCE As String
Dim A As String, intitulé_B As String, C As String, D As String, E As String, F As String, G As String, L As String, M As String, N As String, O As String
Dim tablo, tabloR(), k%, i%
'affiche la date et l'heure à laquelle la personne a cliqué sur le bouton, la date est placée en L7. Il faut donc placer le bouton juste au dessus ou au dessous.
With [R14]
.Value = Now
.NumberFormat = "dd/mm/yyyy hh:mm"
End With
'copie les valeurs de "TCD"
With Sheets("TCD")
dl = .Range("C" & Rows.Count).End(xlUp).Row 'last line
'-------------------- ENTÊTES -- Not useful --------------------------------
A = .Range("J2")
B = .Range("B7")
C = .Range("B7")
D = .Range("D7")
E = .Range("K2")
F = .Range("C7")
G = .Range("J7")
H = .Range("D7")
'-------------------- INFORMATIONS DES ENTÊTES--------------------------
' date1 = .Range("A8")
BL = .Range("B8")
POOL = .Range("K3")
REFERENCE = .Range("C8")
QUANTITE = .Range("J8")
RECEPTIONNAIRE = .Range("D8")
' N_IFCO = .Range("L3")
'-------------------- BDD---------------------------------------------
tablo = .Range("A11:G" & dl)
k = 0
'colle les valeurs dans CC
For i = 1 To UBound(tablo, 1) Step 4
If tablo(i, 3) <> "" Then
ReDim Preserve tabloR(1 To 10, 1 To k + 2)
tabloR(1, 1 + k) = DateValue(date1)
tabloR(2, 1 + k) = DateValue(date1)
tabloR(3, 1 + k) = BL
tabloR(4, 1 + k) = POOL
tabloR(5, 1 + k) = REFERENCE
tabloR(6, 1 + k) = QUANTITE
tabloR(7, 1 + k) = RECEPTIONNAIRE
tabloR(8, 1 + k) = N_IFCO
k = 1 + k
'colle les intitulés des valeurs
tabloR(1, 1) = A
tabloR(2, 1) = B
tabloR(3, 1) = C
tabloR(4, 1) = D
tabloR(5, 1) = E
tabloR(6, 1) = F
tabloR(7, 1) = G
tabloR(8, 1) = H
End If
Next i
If FichOuvert("Bouton Annabelle.xlsx") Then
'Workbooks("ecart-type.xlsx").Sheets("CC").Range("A2").CurrentRegion.Offset(1, 0).ClearContents
derlig = Workbooks("Bouton Annabelle.xlsx").Sheets("CC").Range("b" & Rows.Count).End(xlUp).Row + 1
On Error Resume Next
Workbooks("Bouton Annabelle.xlsx").Sheets("CC").Range("A" & derlig).Resize(UBound(tabloR, 2), 15) = Application.Transpose(tabloR)
Erase tablo: Erase tabloR
End If
End With
ActiveWindow.SmallScroll Down:=-33
ActiveWorkbook.Save
End Sub
Ce code ne fonctionne pas, auriez-vous des idées de modification?