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 Sub

Merci beaucoup par avance !

24synoptique-vba.xlsm (133.30 Ko)
28planning-octo.xlsm (272.02 Ko)

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

Re,

Faut-il que je réédite mon post ?

Oui s'il vous plait, en utilisant le bouton

image

Par avance merci

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
8test-change2.xlsm (13.07 Ko)
7test-change.xlsm (8.60 Ko)

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+

tu m'as bien fait rire ce matin, je m'attendais à cette réponse. Merci quand même d'avoir regardé...

Bonne journée

Rechercher des sujets similaires à "aide macro entre classeurs differents"