br44
XLDnaute Impliqué
Bonjour le forum ,
Voilà mon petit problème . J'ai deux classeurs le premier est mon classeur de facture ("F.xls")le deuxième est mon classeur pour le suivi client("SC.xls").
j'ai une boucle qui copie des informations du classeur("F.xls") vers le classeur("SC.Xls")
les èlèments copier sont simplement:
1-le N° de facture
2-la date de Facture
3-le montantant de la facture
voici la boucle consernèe:
'Déclare le Chemin2 vers "SC.xls"
Dim Chemin2 As String
'Dèclare la variable Wb4
Dim Wb4 As Workbook
'Declare la Variable C
Dim C As String
'Declare la Variable MP
Dim MP As Range
'Declare la Variable R
Dim R As Range
'Dèfinit la varible C
C = Workbooks("F.Xls").Sheets("Détail").Range("G3").Value
'Dèfinit la varible Chemin2
Chemin2 = "C:\RAPID\GESTION\Sc.XLS"
'Dèfinit la varaible Wb4
Set Wb4 = Workbooks.Open(Chemin2)
'Dèfinit la variable MP
Set MP = Workbooks("SC.xls").Sheets(Mois).Range("A4:A" & Range("A65536").End(xlUp).Row)
'Boucle sur la plage R et MP
For Each R In MP
'Défintit la condition de la plage C
If R.Value = C Then
'Définit et envoie les valeures vers le classeur "SC.XLS"
With Wb2.Sheets("Facture")
.Range("C16").Copy
End With
R.Offset(0, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Facture")
.Range("F12").Copy
End With
R.Offset(0, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Facture")
.Range("G39").Copy
End With
R.Offset(0, 5).PasteSpecial xlPasteValues
'Sort de la boucle
Exit For
'Fin de Condition
End If
'Sort de la plage p
Next R
Application.CutCopyMode = False
'Enregistre les données du classeur "SC.XLS"
Wb4.Save
'Ferme le Classeur "SC.XLS"
Wb4.Close
On ma demmander de modifier le program pour pouvoire enregistrer des prestations suplèmentaire que certain client ,ses dernierniers dèsire que les nouvelles prestations soit facturèes à parts ,j'ai donc conçu des "annexes factures" pour cela . Mon problème est pouvoir envoyer les èlèments des "annex factures" vers le classeur " Sc.XLS" pour chaque les clients consernès .
Les èlèments à envoyer ètant indentiques à ceux de la facture je les repris pour crèer une macro me permetant de copiers les èlèments consernès, de fusionner et enfin de rèajuster les hauteures de lignes pour garder le formats des cellules .
Voici la macros rajouter:
With Wb2.Sheets("Annexfacture1")
.Range("C16").Copy
End With
R.Offset(1, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture1")
.Range("F12").Copy
End With
R.Offset(1, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture1")
.Range("G38").Copy
End With
R.Offset(1, 5).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("C16").Copy
End With
R.Offset(2, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("F12").Copy
End With
R.Offset(2, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("G38").Copy
End With
R.Offset(2, 5).PasteSpecial xlPasteValues
Range("A16:A18,B16:B18,C16:C18").MergeCells = False
Range("A16:A18,B16:B18,C16:C18").MergeCells = True
Rows("16:18").RowHeight = 14.25
Le problèmes est que je voudrais que la dernière partie ne s'execute que pour les clients consernès ,or dans cette configuration la boucle s'applique à tous .
Ma question est donc :
Est-il possible de modifier la boucle pour quelle prenne en compte la deuxième partie du program que pour mes clients conserès ?
Les rèfèrence des clients consernèes sont:
1- "C18"
2- "C19"
A Noter : je n'ai pas mis le procèdure pour le second clients je l'adderais en fonction des informations qui me sera transmises il me faudrait juste la condition .
Pour l'insertions des lignes supplèmentaires elle se fait automatiquement lors de la validations des "annex factures" .
En espèrant avoir ètè claire (cette fois si) dans mes explications .jeremercie par avance tous ceux qui pourront m'aider à rèsoudre se petit problème .
A bientôt BR 44
Voilà mon petit problème . J'ai deux classeurs le premier est mon classeur de facture ("F.xls")le deuxième est mon classeur pour le suivi client("SC.xls").
j'ai une boucle qui copie des informations du classeur("F.xls") vers le classeur("SC.Xls")
les èlèments copier sont simplement:
1-le N° de facture
2-la date de Facture
3-le montantant de la facture
voici la boucle consernèe:
'Déclare le Chemin2 vers "SC.xls"
Dim Chemin2 As String
'Dèclare la variable Wb4
Dim Wb4 As Workbook
'Declare la Variable C
Dim C As String
'Declare la Variable MP
Dim MP As Range
'Declare la Variable R
Dim R As Range
'Dèfinit la varible C
C = Workbooks("F.Xls").Sheets("Détail").Range("G3").Value
'Dèfinit la varible Chemin2
Chemin2 = "C:\RAPID\GESTION\Sc.XLS"
'Dèfinit la varaible Wb4
Set Wb4 = Workbooks.Open(Chemin2)
'Dèfinit la variable MP
Set MP = Workbooks("SC.xls").Sheets(Mois).Range("A4:A" & Range("A65536").End(xlUp).Row)
'Boucle sur la plage R et MP
For Each R In MP
'Défintit la condition de la plage C
If R.Value = C Then
'Définit et envoie les valeures vers le classeur "SC.XLS"
With Wb2.Sheets("Facture")
.Range("C16").Copy
End With
R.Offset(0, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Facture")
.Range("F12").Copy
End With
R.Offset(0, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Facture")
.Range("G39").Copy
End With
R.Offset(0, 5).PasteSpecial xlPasteValues
'Sort de la boucle
Exit For
'Fin de Condition
End If
'Sort de la plage p
Next R
Application.CutCopyMode = False
'Enregistre les données du classeur "SC.XLS"
Wb4.Save
'Ferme le Classeur "SC.XLS"
Wb4.Close
On ma demmander de modifier le program pour pouvoire enregistrer des prestations suplèmentaire que certain client ,ses dernierniers dèsire que les nouvelles prestations soit facturèes à parts ,j'ai donc conçu des "annexes factures" pour cela . Mon problème est pouvoir envoyer les èlèments des "annex factures" vers le classeur " Sc.XLS" pour chaque les clients consernès .
Les èlèments à envoyer ètant indentiques à ceux de la facture je les repris pour crèer une macro me permetant de copiers les èlèments consernès, de fusionner et enfin de rèajuster les hauteures de lignes pour garder le formats des cellules .
Voici la macros rajouter:
With Wb2.Sheets("Annexfacture1")
.Range("C16").Copy
End With
R.Offset(1, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture1")
.Range("F12").Copy
End With
R.Offset(1, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture1")
.Range("G38").Copy
End With
R.Offset(1, 5).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("C16").Copy
End With
R.Offset(2, 3).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("F12").Copy
End With
R.Offset(2, 4).PasteSpecial xlPasteValues
With Wb2.Sheets("Annexfacture2")
.Range("G38").Copy
End With
R.Offset(2, 5).PasteSpecial xlPasteValues
Range("A16:A18,B16:B18,C16:C18").MergeCells = False
Range("A16:A18,B16:B18,C16:C18").MergeCells = True
Rows("16:18").RowHeight = 14.25
Le problèmes est que je voudrais que la dernière partie ne s'execute que pour les clients consernès ,or dans cette configuration la boucle s'applique à tous .
Ma question est donc :
Est-il possible de modifier la boucle pour quelle prenne en compte la deuxième partie du program que pour mes clients conserès ?
Les rèfèrence des clients consernèes sont:
1- "C18"
2- "C19"
A Noter : je n'ai pas mis le procèdure pour le second clients je l'adderais en fonction des informations qui me sera transmises il me faudrait juste la condition .
Pour l'insertions des lignes supplèmentaires elle se fait automatiquement lors de la validations des "annex factures" .
En espèrant avoir ètè claire (cette fois si) dans mes explications .jeremercie par avance tous ceux qui pourront m'aider à rèsoudre se petit problème .
A bientôt BR 44