RESOLU - Erreur de compilation procèdure trop grande

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous et à tous,

De nouveau besoin de votre aide :)

J'ai une macro :

Code:
Sub TransmissionRdVmatrice()
'
' TransmissionRdVmatrice Macro
'

'
    Sheets("RdV agent").Select
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "1"
    Call suivRdVagent
    ActiveSheet.Unprotect Password:="Krameri"
    
    Sheets("RdV agent").Copy
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Delete
    Selection.Cut
    
    Range("B1:C1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(R[2]C[-1]=0,"""",CONCATENATE(LOOKUP(R[2]C[-1],Clients),"" "",LOOKUP(R[2]C[-1],Clients1)))"
    Range("B1:C1").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    ActiveWorkbook.Names("abrégés").Delete
    ActiveWorkbook.Names("AdrA").Delete
    ActiveWorkbook.Names("AdrB").Delete
    ActiveWorkbook.Names("AvMR").Delete
    ActiveWorkbook.Names("AvMT").Delete
    ActiveWorkbook.Names("AvR").Delete
    ActiveWorkbook.Names("AvRet").Delete
    ActiveWorkbook.Names("Bdeux").Delete
    ActiveWorkbook.Names("Bquatre").Delete
    ActiveWorkbook.Names("Btrois").Delete
    ActiveWorkbook.Names("Bun").Delete
    ActiveWorkbook.Names("Cdeux").Delete
    ActiveWorkbook.Names("Clients").Delete
    ActiveWorkbook.Names("Clients1").Delete
    ActiveWorkbook.Names("Comment").Delete
    ActiveWorkbook.Names("CPV").Delete
    ActiveWorkbook.Names("Cquatre").Delete
    ActiveWorkbook.Names("Ctrois").Delete
    ActiveWorkbook.Names("Cun").Delete
    ActiveWorkbook.Names("Devise").Delete
    ActiveWorkbook.Names("Factdeux").Delete
    ActiveWorkbook.Names("Factquatre").Delete
    ActiveWorkbook.Names("Facttrois").Delete
    ActiveWorkbook.Names("Factun").Delete
    ActiveWorkbook.Names("Genre").Delete
    ActiveWorkbook.Names("MdeuxT").Delete
    ActiveWorkbook.Names("Medeux").Delete
    ActiveWorkbook.Names("MEquatre").Delete
    ActiveWorkbook.Names("Metrois").Delete
    ActiveWorkbook.Names("Meun").Delete
    ActiveWorkbook.Names("MquatreT").Delete
    ActiveWorkbook.Names("MtroisT").Delete
    ActiveWorkbook.Names("MunT").Delete
    ActiveWorkbook.Names("Odeux").Delete
    ActiveWorkbook.Names("Oquatre").Delete
    ActiveWorkbook.Names("Otrois").Delete
    ActiveWorkbook.Names("Oun").Delete
    ActiveWorkbook.Names("RCPdeux").Delete
    ActiveWorkbook.Names("RCPquatre").Delete
    ActiveWorkbook.Names("RCPtrois").Delete
    ActiveWorkbook.Names("RCPun").Delete
    ActiveWorkbook.Names("RSdeux").Delete
    ActiveWorkbook.Names("RSun").Delete
    ActiveWorkbook.Names("TVAdeux").Delete
    ActiveWorkbook.Names("TVAun").Delete
    
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Application.Dialogs(xlDialogSaveAs).Show
    Application.Dialogs(xlDialogSaveAs).Show
    ActiveWindow.Close
    ActiveSheet.Protect Password:="Krameri", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    
    
    Sheets("RdV agent").Select
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "2"
    Call suivRdVagent
    ActiveSheet.Unprotect Password:="Krameri"
    
    Sheets("RdV agent").Copy
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Delete
    Selection.Cut
    
    Range("B1:C1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(R[2]C[-1]=0,"""",CONCATENATE(LOOKUP(R[2]C[-1],Clients),"" "",LOOKUP(R[2]C[-1],Clients1)))"
    Range("B1:C1").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    ActiveWorkbook.Names("abrégés").Delete
    ActiveWorkbook.Names("AdrA").Delete
    ActiveWorkbook.Names("AdrB").Delete
    ActiveWorkbook.Names("AvMR").Delete
    ActiveWorkbook.Names("AvMT").Delete
    ActiveWorkbook.Names("AvR").Delete
    ActiveWorkbook.Names("AvRet").Delete
    ActiveWorkbook.Names("Bdeux").Delete
    ActiveWorkbook.Names("Bquatre").Delete
    ActiveWorkbook.Names("Btrois").Delete
    ActiveWorkbook.Names("Bun").Delete
    ActiveWorkbook.Names("Cdeux").Delete
    ActiveWorkbook.Names("Clients").Delete
    ActiveWorkbook.Names("Clients1").Delete
    ActiveWorkbook.Names("Comment").Delete
    ActiveWorkbook.Names("CPV").Delete
    ActiveWorkbook.Names("Cquatre").Delete
    ActiveWorkbook.Names("Ctrois").Delete
    ActiveWorkbook.Names("Cun").Delete
    ActiveWorkbook.Names("Devise").Delete
    ActiveWorkbook.Names("Factdeux").Delete
    ActiveWorkbook.Names("Factquatre").Delete
    ActiveWorkbook.Names("Facttrois").Delete
    ActiveWorkbook.Names("Factun").Delete
    ActiveWorkbook.Names("Genre").Delete
    ActiveWorkbook.Names("MdeuxT").Delete
    ActiveWorkbook.Names("Medeux").Delete
    ActiveWorkbook.Names("MEquatre").Delete
    ActiveWorkbook.Names("Metrois").Delete
    ActiveWorkbook.Names("Meun").Delete
    ActiveWorkbook.Names("MquatreT").Delete
    ActiveWorkbook.Names("MtroisT").Delete
    ActiveWorkbook.Names("MunT").Delete
    ActiveWorkbook.Names("Odeux").Delete
    ActiveWorkbook.Names("Oquatre").Delete
    ActiveWorkbook.Names("Otrois").Delete
    ActiveWorkbook.Names("Oun").Delete
    ActiveWorkbook.Names("RCPdeux").Delete
    ActiveWorkbook.Names("RCPquatre").Delete
    ActiveWorkbook.Names("RCPtrois").Delete
    ActiveWorkbook.Names("RCPun").Delete
    ActiveWorkbook.Names("RSdeux").Delete
    ActiveWorkbook.Names("RSun").Delete
    ActiveWorkbook.Names("TVAdeux").Delete
    ActiveWorkbook.Names("TVAun").Delete
    
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Application.Dialogs(xlDialogSaveAs).Show
    Application.Dialogs(xlDialogSaveAs).Show
    ActiveWindow.Close
    ActiveSheet.Protect Password:="Krameri", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    End Sub


Excel me dit : Erreur de compilation procèdure trop grande ...... (tu m'étonnes LOL)

Mais je ne sais pas comment la raccourcir

En fait, c'est une répétition de 1 à 50 et + (dans le code que je vous transmets, je n'en mets que 2)

Pourriez-vous m'aider ?

Encore un grand merci surtout pour avoir vu cette longue macro de profane :)
Amicalement,
Caliméro,
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Erreur de compilation procèdure trop grande

Bonjour,

a priori, entre les deux répétitions de code, la seule chose qui change c'est ActiveCell.FormulaR1C1 = "1" puis = "2"

faire une boucle For i= 1 to 50 englobant une seule "répétition" de code et modifier ActiveCell.FormulaR1C1 = "1" en ActiveCell.FormulaR1C1 = i

A+

Edit: FormulaR1C1 ne se justifie pas puisque la valeur affectée n'est pas une formule. a priori ActiveCell = i ou ActiveCell.Value= i
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Erreur de compilation procèdure trop grande

Re

dans la macro actuelle, vous supprimez un des deux blocs de code identique, puis dans la macro , avant Sheets("RdV agent").Select vous ajoutez For i= 1 to 50 et après ActiveSheet.EnableSelection = xlUnlockedCells vous ajoutez Next i

sans oublier la modification du post #2

Bonne suite
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Erreur de compilation procèdure trop grande

Bonsoir Paf,

Merci pour votre réponse.
En effet, la macro fonctionne bien après avoir fait ce que vous m'avez dit mais elle ne me modifie pas ma cellule :

1er passage
Range("A3").Select
ActiveCell.FormulaR1C1 = "1"

2eme passage
Range("A3").Select
ActiveCell.FormulaR1C1 = "2"

3eme passage
Range("A3").Select
ActiveCell.FormulaR1C1 = "3"

etc....

Bonne fin de soirée,
Amicalement,
Calimero,
 

Statistiques des forums

Discussions
312 190
Messages
2 086 040
Membres
103 105
dernier inscrit
fofana