exécuter 2 macros en même temps

archi

XLDnaute Impliqué
Bjr,

j'aimerai exécuter 2 macros (ci-joint) par une seule commande
que dois-je faire ???

éventuellement l'idéal serait de faire une compilation (2 en 1)(les variables sont en rouge)
merci
bye

-----------------------------------
Sub Equipe_100()
Application.ScreenUpdating = False
With Sheets('Equipe 1').Range('C2')
If InStr(1, .Value, ' ') < 1 Then Exit Sub
Nom = Left(.Value, InStr(1, .Value, ' ') + 1) + '.'
Nom = Application.WorksheetFunction.Proper(Nom)
End With
With Sheets(Nom)
Lig1 = .Range('A10000').End(xlUp).Row
Range(.Range('H' & Lig1 + 1), .Range('H' & Lig1 + 3)).Clear
End With
With Sheets('Equipe 1')
i = Application.CountA(.Range('D5:D8'))
.Range('B5:I' & 4 + i).Copy
End With
With Sheets(Nom)
.Range('A65536').End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
.Range('A65536').End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range(.Range('A4'), .Range('H' & Lig1)).Validation.Delete
Lig1 = .Range('A65536').End(xlUp).Row
Lig2 = .Range('J65536').End(xlUp).Row + 1
.Range('A4:H' & Lig1).Validation.Delete
Range(.Range('A4'), .Range('H' & Lig1)).Sort Key1:=.Range('A4'), Order1:=xlAscending
Range(.Range('J' & Lig2 - 1), .Range('M' & Lig2 - 1)).AutoFill _
Destination:=Range(.Range('J' & Lig2 - 1), .Range('M' & Lig1)), Type:=xlFillDefault
End With
Sheets('Equipe 1').Activate: Range('C2').Select
Application.ScreenUpdating = True
End Sub
-------------------------------------
Sub Equipe_101()
Application.ScreenUpdating = False
With Sheets('Equipe 1').Range('C9')
If InStr(1, .Value, ' ') < 1 Then Exit Sub
Nom = Left(.Value, InStr(1, .Value, ' ') + 1) + '.'
Nom = Application.WorksheetFunction.Proper(Nom)
End With
With Sheets(Nom)
Lig1 = .Range('A10000').End(xlUp).Row
Range(.Range('H' & Lig1 + 1), .Range('H' & Lig1 + 3)).Clear
End With
With Sheets('Equipe 1')
i = Application.CountA(.Range('D12:D14'))
.Range('B12:I' & 11 + i).Copy
End With
With Sheets(Nom)
.Range('A65536').End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormats
.Range('A65536').End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range(.Range('A4'), .Range('H' & Lig1)).Validation.Delete
Lig1 = .Range('A65536').End(xlUp).Row
Lig2 = .Range('J65536').End(xlUp).Row + 1
.Range('A4:H' & Lig1).Validation.Delete
Range(.Range('A4'), .Range('H' & Lig1)).Sort Key1:=.Range('A4'), Order1:=xlAscending
Range(.Range('J' & Lig2 - 1), .Range('M' & Lig2 - 1)).AutoFill _
Destination:=Range(.Range('J' & Lig2 - 1), .Range('M' & Lig1)), Type:=xlFillDefault
End With
Sheets('Equipe 1').Activate: Range('C9').Select
Application.ScreenUpdating = True
End Sub

Message édité par: archi, à: 15/08/2005 12:30
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Archi

Quelle histoire !!! ;) LOL

Bon j'ai appliqué la boucle avec décallage de Sept... C'est le plus radical et simple, tous tes boutons doivent se référer à 'TheRunner' du module2... En Module1 j'ai laissé ta Macro() qui n'a rien à voir en fait avec la question de ce Fil puisque c'est un traitement d'une autre feuille à un autre moment...

Bonne Fin de Journée
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 15/08/2005 18:03

ARF quand on tombe un truc qui M... c'est jusqu'au bout lol maintenant ce satané fichier fait plus de 50 Ko LOL

Message édité par: _Thierry, à: 15/08/2005 18:05

EDITION !!!!

OK le fichier est là :

Ce lien n'existe plus

Message édité par: _Thierry, à: 15/08/2005 18:11
 

archi

XLDnaute Impliqué
je te remerci pour tous, ça fonctionne du feu de dieu
cartonnes.gif


bye
 

_Thierry

XLDnaute Barbatruc
Repose en paix
RE Archi, le Forum

Non le mot est trop faible ! LOL NOn je rigole, mais par contre tu n'es pas vraiment curieux ni aventurier de nature...

A ton avis ....

Sub TheRunner()
Dim RangeBase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As String
Dim i As Byte
Dim NumRBase As Integer


NumRBase = 2

Application.ScreenUpdating =
False

&nbsp; &nbsp;
For i = 1 To 6
&nbsp; &nbsp; &nbsp; RangeBase = 'C' & NumRBase
&nbsp; &nbsp; &nbsp; RangeCount = 'D' & NumRBase + 3 & ':D' & NumRBase + 6
&nbsp; &nbsp; &nbsp; RangeCopy = 'B' & NumRBase + 3
&nbsp; &nbsp; &nbsp; RowCopy = NumRBase + 2
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; Equipe RangeBase, RangeCount, RangeCopy, RowCopy
&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; NumRBase = NumRBase + 7
&nbsp; &nbsp; &nbsp;
Next
&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End Sub


La Variable NumRBase Initialisée à = 2 ... Sert à quoi ???

Faut tout prévoir avec les Zozos d'XLD ;)

Bonne Soirée
[ol]@+Thierry[/ol]
 

Brigitte

XLDnaute Barbatruc
Thierry ?

Si tu m'entends, ta secrétaire particulière te rappelle que ton agenda a sonné voilà plus d'une heure et que tu as loupé ton rv avec Stéphanie de Monac.

Enfin, c comme tu veux... si tu préfères Archi, mais je te préviens, c un garçon lui (et oui, j'ai bonne mémoire Steeve : le tennis de table, ca va toujours ?).

Excusez moi de m'être à mon tour immergée, immiscée dans ce fil dévolu à Archi et Thierry, mais ct pour la bonne cause.


Stéphanie si tu nous entends, pardonne lui, il ne sait pas ce qu'il fait quand il EXCELle...

Bisous mon Thierry... tu les as bien mérités...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Brigitte, José

Merci José pour la Duvel, j'en avais vraiment besoin !! LOL

Et merci pour me rappeler mes RV ma plus fidèle Secrètaire Particulière Préférée ;)

Oui j'ai loupé mon RV du coup et en plus c'est vrai, mais pas avec la même personne, mais bon de toute façon j'étais déjà trop à la bourre !

Enfin donc ça fait plaisir de voir qu'au moins on vous fait rigoler avec ce Fil lol

Merci encore !
[ol]@+Thierry[/ol]

PS je suis dans le Tchat au cas où
 

archi

XLDnaute Impliqué
j'en connais qui rigole un peu moins....mais bon qu'en on débute on galère....
sur ce, Thierry désolé d'avoir fais foiré ton RDV...sorry

pour finir, j'ai mis la valeur NumRBase =44, mais j'ai un rebug sur la ligne:
With Sheets(WSBase).Range(RangeBase)

que dois je faire ??
 

archi

XLDnaute Impliqué
j'en connais qui rigole un peu moins....mais bon qu'en on débute on galère....
sur ce, Thierry désolé d'avoir fais foiré ton RDV...sorry

pour finir, j'ai mis la valeur NumRBase =44, mais j'ai un rebug sur la ligne:
With Sheets(WSBase).Range(RangeBase)

que dois je faire ??
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Archi

Huum Huum, est-ce que le Classeur Actif est le Bon ?

Essaie ce Code là ...

Option Explicit

Const WSBase As String = 'Equipe 1'

Sub TheRunner()
Dim RangeBase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As String
Dim i As Byte
Dim NumRBase As Integer

NumRBase = 44
Application.ScreenUpdating =
False

'Ici un moyen de ne pas te lélanger sur plusieurs classeurs ouverts
ThisWorkbook.Activate

   
For i = 1 To 6
      RangeBase = 'C' & NumRBase
      RangeCount = 'D' & NumRBase + 3 & ':D' & NumRBase + 6
      RangeCopy = 'B' & NumRBase + 3
      RowCopy = NumRBase + 2
           
     
     
'Ici un test
      MsgBox 'RangeBase : ' & RangeBase & vbCrLf & _
            'RangeCount : ' & RangeCount & vbCrLf & _
            'RangeCopy : ' & RangeCopy & vbCrLf & _
            'RowCopy : ' & RowCopy & vbCrLf
     
      Equipe RangeBase, RangeCount, RangeCopy, RowCopy
   
      NumRBase = NumRBase + 7
     
Next
   
           
End Sub

Bonne Soirée
[ol]@+Thierry[/ol]


EDITION !!!

En direct du Tchat :
2_Thierry> non mais il doit avoir un autre classeur ouvert actif
Intervenant> 'Ici un moyen de ne pas te lélanger sur plusieurs classeurs ouverts
Intervenant> C'est un bébé macro ?

Sorry j'ai mal tapé 'lélanger' au lieu Mélanger lol

Message édité par: _Thierry, à: 15/08/2005 20:27
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Arf Arf Arf

Oui oui Docteur c'est très grave !!!

Si tu travaille en multi-Modules alors...

Change :
Const WSBase As String = 'Equipe 1'

Par :
Public Const WSBase As String = 'Equipe 1'

Bonne Soirée
[ol]@+Thierry[/ol]
 

archi

XLDnaute Impliqué
Salut Thierry,

Pourrez tu m'expliquer ligne par ligne le code que tu m'as créer ?
-----------------------------------------
Sub Equipe1_A()
Dim RangeBase As String
Dim RangeCount As String
Dim RangeCopy As String
Dim RowCopy As String
Dim i As Byte
Dim NumRBase As Integer

NumRBase = 2
Application.ScreenUpdating = False


For i = 1 To 6
RangeBase = 'C' & NumRBase
RangeCount = 'D' & NumRBase + 3 & ':D' & NumRBase + 6
RangeCopy = 'B' & NumRBase + 3
RowCopy = NumRBase + 2

Equipe RangeBase, RangeCount, RangeCopy, RowCopy

NumRBase = NumRBase + 7
Next


End Sub

-----------------------------------
Merci
 

Discussions similaires

Réponses
6
Affichages
142

Statistiques des forums

Discussions
312 321
Messages
2 087 260
Membres
103 498
dernier inscrit
FAHDE