EXECUTION APRES UNE PLAGE

  • Initiateur de la discussion Initiateur de la discussion br44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

br44

XLDnaute Impliqué
Bonsoir le forum

je lance se sujet en èspèrant que quelqu'un à une solution.
commant peut-on faire executer une macro apres une plage de 29 lignes?

Merci d'avance à tous ceux et toutes celles qui me répondront .
à bientôt sur se fil
br44
 
Bonsoir br44, bonsoir Patrick,
Bonsoir les gense et les gens 🙂

br44, je dirai même plus : je ne comprends pas :S

Je sais bien que j'ai la comprenette un peu bouchée mais je crois qu'il va falloir que tu nous donnes plus de détail, voire même joindre un fichier exemple 🙂

A+ 😉
 
re: Bonsoir le forum ,Pat1545 et Charly2

je m'excuse pour mon manque de clartè et je vais essayer de vous expliquer ce que je veux .

Dans la procedure qui suit :

Private Sub CommandButton2_Click() 'bounton 'Enregistrer la fiche'
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim Mois As String


Mois = ActiveSheet.Range('C3').Value
Set Wb1 = Workbooks.Open(Chemin)
Set Wb2 = ThisWorkbook

ActiveWorkbook.Save
1) With Wb2 '.Activate
.Sheets('Détail').Range('A1:G29').Copy
End With
Sheets(Mois).Range('A65536').End(xlUp).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range('A1').Select
With Wb2 '.Activate
Run 'MacForDét'
End With
With Wb2 '.Activate
.Sheets('Facture').Range('A1:G50').Copy
End With

2) Sheets(mois).Range('A65536').End (XlUp).Offset(1,0).PastSpecial Paste:=XlValues,Operation:=XlNone,SkipBlanks:=False,Transpose:=False
Range('A65536').End(XlUp).Offset(1,0).Select
With Wb2'.Activate
Run'MacForFact'
End With

Tout se passe bien jusqu'à :
Range('A65536').End(XlUp).Offset(1,0).Select
Du deuxieme bloc instruction
Mon problème et que la macro (Format) qui suis ne s'excute pas à la suite comme prévu.
Sachant que les deux macros sont diffèrantes mais qu'elles commancent toutes les deux en Range('A1'),Comment puis-je faire comprendre à la macros consernèe de commencer en ('A30') tout en conservant sont format d'origine.
D'où ma question :
Comment faire excecuter une macro toute les 29 lignes(plage A1:A29 pour le premier bloc)
Afin de créer un listing .

je joint un fichier contenant les classeurs conserner .
Vous remerciant par avance de l'aide que voudrez bien me donner je vous dis à plus sur le forum br44
[file name=F1.zip size=49063]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/F1.zip[/file]
 

Pièces jointes

  • F1.zip
    F1.zip
    47.9 KB · Affichages: 24
  • F1.zip
    F1.zip
    47.9 KB · Affichages: 26
  • F1.zip
    F1.zip
    47.9 KB · Affichages: 19
Bonjour br44, bonjour Patrick,
Bonjour à toutes et à tous 🙂

Vois si le code joint peux répondre à ta demande :

[file name=br44_USF_CopieFeuilles.zip size=30406]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/br44_USF_CopieFeuilles.zip[/file]

Dans cette proposition, tu n'as plus besoin de tes macros de formatage. A faire évoluer si tu as plusieurs factures à intégrer les unes à la suite des autres ; dans ce cas, tu t'inspirerais du code pour la copie de la facture...

A+ 😉
 

Pièces jointes

re,

Juste un petit détail mais qui a son importance : du fait que le code proposé copie les données d'un classeur à l'autre en modifiant les cellules de destination pour la copie, j'ai utilisé des références absolues pour les liaisons...

Voili voilà 😛

A+ 😉

Message édité par: Charly2, à: 19/05/2006 11:46
 
re: rebonjour à tous et à Charly2

comme prévue je te donne les rèsultats de mes testes

Il y a une erreur 1004 dans t'as procèdure au niveau de l'expression:

With ActiveSheet
.Paste

la cause :

Impossible de coller les informations car les Zones de copier et de collage sont de formats et de taille diffèrantes .

J'ai essayer de modifier mais j'avoue que je ne vois pas , si tu as une idée elle serais la bienvenue ,si se n'est pas abuser biensure .

en te remerciant de nouveau je te dis à plus sur se fil
Br44
 
Bonsoir br44, bonsoir Patrick, bonsoir à toutes et à tous 🙂

Je l'ai testé avec une feuille Janvier vierge de données : pas de souci sur la ligne .Paste. Par contre, si ta feuille Janvier contient déjà des données, j'obtiens l'erreur dont tu parles.

En fait, je l'ai testée avec les fichiers que tu as joints. J'aurais dû penser que tu pouvais sauvegarder plusieurs fois. Je te proposerai un autre code en tenant compte de cela 🙂

A+ 😉
 
re: Bonjour Charly2 ,le forum

ok j'ai bien recu ton message et t'en remercie par avance ,de mon cote je continu à chercher une solution Qui sais une trés de gènie qui passerais dans le coin 🙂 !

en attendant je te dis à plus sur ce fil

Br44
 
Bonjour br44,

Je vais m'y atteler aussi. Pour le trait de génie, tant que tu n'es pas légionnaire, ça va... J'ai lu qu'il y en avait un qui était mort parce qu'une idée lui avait traversé l'esprit !!! :woohoo:

A+ 😉
 
re: bonsoir le forum et Charly2

j'ai bien reçu t'on dernier message et je t'en remercie .

de mon côte j'ai chercher une solution et en regardant dans un aincien fichier j'ai retrouve une procedure qui fonctionne il ne me reste qu'a l'adapter .

le seul soussi c'est qu'elle contient une fonction 'MyFunctionLookUp' baser sur une feuille située dans le même classeur .
J'aurais voulus savoir si il est possible de l'adapter un autres classeur ?
Je te mets la procédure :

Private Function MyFunctionLookUp _
(ByVal RefProd (A REMPLACER PAR REFCLIENT) As string)As String

Dim Plage As Range
Dim Cell As Range

With ThisWorkBook.Sheets('Produit')

('A REMPLACER POUR WORKBOOK ('C.XLS').Sheets('Feuil1'))
Set Plage= .Range(.range('A2'),.Range('A65536').End(XlUp)
End With
For Each Cell In Plage
If Cell = Ref prod Then (A RAMPLACER PAR 'RefClient') MyFunctionLookUp=Cell.Offset(0,1)
Excit For
End If
Next
End Function

En esperant que cela puisse t'aider et que se soit claire ,à noter que ça bloque au niveau du 'With ThisWorkBook ....' .je suis navré d'être si limiter au niveau du vba mais j'essaye de mon côter.
je te dis à plus sur ce fil et te dis A PLUS
BR44
 
re: bonsoir le forum

Un petit résumer pour vous dire que j'ai enfin résolu une partie du problème si joint la procédure utiliser :

Private Sub CommandButton2_Click() 'bouton 'Enregistrer la fiche'
'
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim Mois As String
Dim I As Integer
Dim y As Integer
'
Mois = ActiveSheet.Range('C3').Value
Set Wb1 = Workbooks.Open(Chemin)
Set Wb2 = ThisWorkbook

Wb2.Sheets('Détail').Range('A1:G29').Copy Destination:=Wb1.Sheets(Mois) _
.Range('A65536').End(xlUp)
Wb2.Sheets('Facture').Range('1:50').Copy Destination:=Wb1.Sheets(Mois) _
.Range('A65536').End(xlUp).Offset(1, 0)

With Wb1.Sheets(Mois)
For I = 1 To .Range('A1:G29').Columns.Count
.Columns(I).ColumnWidth = Wb2.Sheets('Détail').Columns(I).ColumnWidth
Next
y = 1
For I = 2 To .Range('A1:G29').Rows.Count
.Rows(I).RowHeight = Wb2.Sheets('Détail').Rows(y).RowHeight
Next
End With
Application.CutCopyMode = False

End Sub
Yoopi celà fonctionne trés bien :woohoo:

Maitenant le problème est quand je veux copier à nouveaux une nouvelle fiche à la suite, le collage se déclanche au milieu de la copie précédante(('A67')cellule vide) et non à la première cellue vide de la plage c'est-à-dire en ('A81') .

J'ai essayer de faire une boucle avec la même procédure rajoutant Offset(12,0) à la fin de la première destination mais sa ne fonctionne pas .


Si quelqu'un de se charmant forum peut répondre à cette question .
que puis-faire pour résoudre ce petit soussi?

en esprant une réponse de votre part je vous à plus et merci encore pour toute vos proposition
br44
 
re: bonjour le forum ,Charly2

Juste se petit message pour dir que je mais fin à ce fil et que je relance un nouveau sujet .

Merci à Charly2 et tous ceux qui ont pris le temps de jetter un oeil

A bientôt sur le forum

br44
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
743
Retour