1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| Option Explicit
Sub TransfertData()
'******************************************************************************************************************************
'********* DECLARATION DES VARIABLES ******************************************************************************************
Dim Name As String, Name2 As String, NameFinal As String, Feuillet As Integer, Path As String, WB As String, WB2 As String, WB3 As String
Dim I As Integer, J As Integer, K As Integer, L As Integer, Mois As Integer
Dim FilePays As String, FilePays2 As String
Dim ClientFinal As String, ClientData As String, ClientFinal2 As String, ClientData2 As String
Dim NbSheets As Integer, NbClient As Integer, NbClientF As Integer, Toto As Integer, Tata As Integer
Dim Case1 As Variant, Case2 As Variant, Case3 As Variant
'******************************************************************************************************************************
'********* DECLARATION DES Constantes *****************************************************************************************
Mois = Month(Date)
If Mois = 1 Then
Mois = 11
Else
Mois = Mois - 2
End If
'MsgBox Mois
NbSheets = Sheets.Count 'NbSheet = Variable qui contient le nombre de feuillet.
Path = Workbooks(ActiveWorkbook.Name).Path 'Permet de récupérer le chemin du fichier
'MsgBox Path
'**************************************************************************************************************************
'********** Boucle qui permet de faire tout les onglets du fichier finale *************************************************
If NbSheets <> 0 Then
'MsgBox NbSheet
For Feuillet = 1 To NbSheets
Sheets(Feuillet).Select
'MsgBox ActiveSheet.Name '// Test de récupération du nom de l'onglet présent
Name = ActiveSheet.Name
Name2 = ActiveSheet.Range("A1").Value
'MsgBox Name '// Test que la variable Name a bien le nom de l'onglet
NameFinal = ActiveWorkbook.Name
'MsgBox NameFinal
'*****************************************
'************** BLOC FOR I ***************
' Cette boucle permet de démarrer les différente
'comparaison avant la copie des données
FilePays = Name2 & ".xlsx"
FilePays2 = Name2 & ".xls"
WB = Path & "\DATA\" & Name2
'MsgBox WB ', permet de vérifier la valeur de WB
WB2 = Path & "\DATA\" & FilePays
WB3 = Path & "\DATA\" & FilePays2
If Fichier_Existe(WB2) = True Then
Workbooks.Open Filename:=WB2
ElseIf Fichier_Existe(WB3) = True Then
Workbooks.Open Filename:=WB3
'Ouverture du fichier contenant les données en fonction
'de l'onglet dans lequelle on est :
' --> WB contient le chemin complet du fichier dans
'lequelle aller chercher les données.
'C'est un classeur, du même nom que le feuillet
NbClient = 0
NbClientF = 0
'Workbooks(Name2).Activate 'Choisit le bon workbooks (celui du pays en l'occurence)
Range("A6").Select 'Selectionne la case A6
Do While Not (IsEmpty(ActiveCell)) 'Ce poursuit tant que la case n'est pas vide (A6 pour la premiere fois
NbClient = NbClient + 1 'Incrémente de 1 le nombre de client si la case n'est pas vide
Selection.Offset(1, 0).Select 'Passe la selection sur la nouvelle case
Loop
'MsgBox NbClient 'Affiche le nombre de client dans une pop-up
Workbooks(NameFinal).Activate 'Choisit le bon workbooks (le final en l'occurence)
Range("A5").Select
Do While Not (IsEmpty(ActiveCell))
NbClientF = NbClientF + 1
Selection.Offset(1, 0).Select
Loop |