Aide sur une macro entre 2 classeurs differents
Bonjour tout le monde,
après plusieurs jours bloqué et ayant parcouru plusieurs forums, je n'y comprends plus rien...
je voudrais créer un planning automatisé pour mon entreprise, nous avons deux classeurs:
1- le synoptique qui rassemble tout les renseignements de chaque chantier (nom du chantier, date de livraison, nb de bâtiments, nb d'étages, chiffres d'affaires...)
2-le planning qui viendra trier les différents chantier celons leurs dates de livraisons et les temps de productions...
Actuellement je voudrais "juste" que l'état de réalisation se trouvant colonne G dans le classeur "PLANNING" se reporte dans la colonne H du classeur "SYNOPTIQUE". bien sûre en comparant entre les deux classeurs le nom du chantier (synoptique B6/ colonne A planning), le nom du bâtiment (synoptique J23 / colonne B planning) et l'étage (synoptique colonne J / colonne C planning)
Je vous joins mon code ainsi que mes deux classeurs...
Et je précise, mais vous l'aurez compris que je suis débutant...
Sub Workbook_SheetChange(ByVal Target As Range)
'ETAT DE REALISATION DES DALLES
Dim BA As Variant
Dim BB As Variant
Dim BC As Variant
Dim BD As Variant
Dim BE As Variant
Dim BF As Variant
Dim BG As Variant
Dim BH As Variant
Dim BI As Variant
Dim BJ As Variant
Dim CKA As Workbook, CKB As Workbook
Dim I As Worksheets
Set CKA = Workbooks("SYNOPTIQUE-vba.xlsm")
Set CKB = Workbooks("PLANNING-OCTO+.xlsm")
For I = 1 To Sheets.Count
BA = 8 'colonne H synoptique OK
BB = 25 'ligne 25 synoptique OK
BG = 2 'colonne B synoptique OK
BH = 6 'ligne 6 synoptique OK
BI = 10 'colonne J synoptique
BJ = 23 'ligne 23 synoptique OK
BC = 1 'colonne A planning OK
BD = 6 'ligne 6 planning OK
BE = 2 'colonne B planning OK
BF = 3 'colonne C planning OK
BK = 7 'colonne G planning OK
Do While BA <= 173 Do While BB <= 61
Do While BI <= 175
Do While BC <= 37 And BE <= 38 And BF <= 39 And BK <= 43
Do While BD <= 120 And BG <= 2 And BH <= 6 And BJ <= 23
If CKA.Sheets(I).Cells(BH, BG).Value = CKB.Sheets(I).Cells(BD, BC).Value And CKA.Sheets(I).Cells(BJ, BI).Value = CKB.Sheets(I).Cells(BD, BE).Value And CKA.Sheets(I).Cells(BB, BI).Value = CKB.Sheets(I).Cells(BD, BF).Value Then
'If CKA.Sheets(I).Cells(BJ, BI).Value = CKB.Sheets(I).Cells(BD, BE).Value Then
'If CKA.Sheets(I).Cells(BB, BI).Value = CKB.Sheets(I).Cells(BD, BF).Value Then
CKA.Sheets(I).Cells(BB, BA).Value = CKB.Sheets(I).Cells(BD, BK).Value
Else: CKA.Sheets(I).Cells(21, 1).Value = 1
End If
'End If
'End If
BD = BD + 2
BG = 2
BH = 6
BJ = 23
Loop
BC = BC + 7
BE = BE + 7
BF = BF + 7
BK = BK + 7
Loop
BI = BI + 15
Loop
BB = BB + 1
Loop
BA = BA + 15
Loop
Next I
Application.EnableEvents = True
End SubMerci beaucoup par avance !
Bonjour Charly11091983 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum
Merci d'éditer votre 1er post et mettre tout le code entre balises grâce au bouton </>
Merci de votre participation
Cordialement
Bonjour Bruno,
Désolé, je viens de remplir ma présentation.
Faut-il que je réédite mon post ?
Merci beaucoup
c'est fait merci pour votre aide !
Re,
je me permet de reposter un message sur ce sujet. J'ai fais un essai sur 2 classeurs vierges uniquement sur une fonction IF sur 2 fichiers que je nomme et seulement sur leurs premiers onglets...
Histoire de tester ma syntaxe et essayé d'avancer sur mon problème.
Mais toujours rien, pas d'erreur mais rien ne se produit...
Je vous met le code ci joint et les deux classeurs si des fois une âme charitable pourrait me donner une piste.
Merci encore !
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Workbooks As Workbook
Dim Worksheets As Worksheet
If Workbooks("test change.xlsm").Worksheets(Feuil1).Cells(1, 1).Value = Workbooks("test change2.xlsm").Worksheets(Feuil1).Cells(1, 1).Value Then
Workbooks("test change.xlsm").Worksheets(Feuil1).Cells(1,2).Value = "VRAI" Else: Workbooks("test change2.xlsm").Worksheets(Feuil1).Cells(1, 2).Value = "FAUX"
End If
End Sub
Bonjour Charly11091983
J'ai ouvert les 2 fichiers initiaux et perso, je trouve cela imbuvable et trop complexe
J'espère qu'un pro voudra passer du temps à cette demande, mais pas certain.
A+
Bonne journée
