Appel de macro fait planter Excel

Bonjour,

A partir d'une macro d'un premier classeur, j'ouvre un autre classeur et j'appelle des macros de ce second classeur. Hors la plupart de ces macros fonctionnent mais au moins une fait planter excel sans message d'erreur lors de son appel. J'ai vérifié la syntaxe qui est exacte.

J'ai besoin de vos lumières pour essayer de comprendre ce qui ne va pas puisque je n'ai aucun message d'erreur.

Merci d'avance

Sans fichier ni code cela sera difficile de voir ce qui ne marche pas

Je fais appel aux macro de du second classeur avec ces lignes de code :

       Case "F"
                    TDS.Sheets(x).Cells(Ligne, j).Select
                    Application.Run "'" & TDSNom & "'!Form"
                Case "CA", "RC", "ATA", "Mat", "ASA", "JAS", "TP" 
                    TDS.Activate
                    TDS.Sheets(x).Cells(Ligne, j).Select
                    Application.Run "'" & TDSNom & "'!" & Planning.Sheets(FeuilPlan).Cells(i, j).Value

Cela fonctionne très très bien pour tous les cas sauf le cas "RC"

Dans l'autre classeur, voici le code des macros impliquées

'Applique le motif Couleur, avec ou sans hachure, et ajoute la valeur Texte à la cellule
'Si Texte vaut Suppr, le contenu de la cellule est supprimé
'Si ContrôleColonne vaut faux, on peut modifier les colonnes A à C
Sub Couleur(Texte As String, Couleur As Integer, Hachure As Boolean, ContrôleColonne As Boolean, CouleurTexte As Integer, TaillePolice As Integer, Efface As Boolean)
Dim Cellule As Range
    Application.ScreenUpdating = False
'Vérifie que l'on est dans une cellule correspondant à une date et une position de travail
'Si ContrôleColonne est vrai on interdit la modification des colonnes A à C, s'il est faux on autorise
    If ((ContrôleColonne = True) And (Selection.Column >= PremièreColonneJours) And (Selection.Column + Selection.Columns.Count - 1 <= Range(NomPremièreColonneJours & LigneTitres).End(xlToRight).Column - NombreColonnesTotaux) And (Selection.Row >= PremièreLigne) And (Selection.Row + Selection.Rows.Count - 1 <= Range("A60000").End(xlUp).Row - 1 - LignesDeFin)) Or ((ContrôleColonne = False) And (Selection.Column + Selection.Columns.Count - 1 <= Range(NomPremièreColonneJours & LigneTitres).End(xlToRight).Column - NombreColonnesTotaux) And (Selection.Row >= PremièreLigne) And (Selection.Row + Selection.Rows.Count - 1 <= Range("A60000").End(xlUp).Row - 1 - LignesDeFin)) Then
        ActiveSheet.Unprotect Password:=MotDePasse
'Effectue la boucle sur toutes les cellules sélectionnées
        For Each Cellule In Selection
'Si la cellule est verrouillé, on ne fait rien, sauf si c'est la colonne de l'identifiant pour Local1 et Local2
            If (Cellule.Locked = False) Or (Cellule.Column = ColonneIdentifiant) Then
'Si la cellule ne correspond pas à un numéro de PT, la taille de la police est de 10, sauf pour colis
                If (Texte <> "") Then
                    Cellule.FormulaR1C1 = Texte
                    Cellule.Font.Size = TaillePolice
                End If
'Si Efface vaut vrai, on efface le contenu de la cellule
                If (Efface = True) Then
                    Cellule.ClearContents
                End If
                Cellule.Font.ColorIndex = CouleurTexte
'Met des hachures si c'est un Rep déjà Rep (donc rose) ou les enlève si elles y sont déjà
                If (Texte = "Rep") And (Cellule.Interior.ColorIndex = Couleur) Then
                    If (Cellule.Interior.Pattern = xlLightUp) Then
                        Cellule.Interior.Pattern = xlSolid
                    Else
                        Cellule.Interior.Pattern = xlLightUp
                        Cellule.Interior.PatternColorIndex = 2
                    End If
                Else
'Définit la couleur du motif en fonction du paramètre Couleur
                    Cellule.Interior.ColorIndex = Couleur
                    Cellule.Interior.Pattern = xlSolid
                End If
'Supprime le gras
                Cellule.Font.Bold = False
'Applique un hachuré si le paramètre Hachure est vrai
                Selection.NumberFormat = "General"
                If (Hachure = True) Then
                    Cellule.Interior.Pattern = xlUp
                    Cellule.Interior.PatternColorIndex = 2
                End If
            ElseIf (Texte = "RCY") And EstJourFérié(Range(NomColonne(Cellule.Column) & LigneTitres)) Then
                Cellule = "RCY"
                Cellule.Interior.ColorIndex = 16
            End If
        Next Cellule
'Lance la macro qui refait les encadrements horizontaux
        RefaitEncadrement
        ActiveSheet.Protect Password:=MotDePasse
    Else
        MsgBox "La sélection n'est pas bonne !", vbOKOnly + vbCritical, "Erreur"
    End If
End Sub

'Procédures associées aux boutons en haut des feuilles mensuelles pour définir le contenu et la couleur des cellules
'Congés d'Affaires bleu
Sub CA()
    Call Couleur("CA", 15, False, True, 1, 10, False)
End Sub

'Congés d'Affaires avec point d'interrogation bleu hachuré
Sub CAq()
    Call Couleur("CA?", 15, True, True, 1, 10, False)
End Sub

'Repos Compensateur gris
Sub RC()
    Call Couleur("RC", 37, False, True, 1, 10, False)
End Sub

essaie d'appeler ta macro à partir d'une macro de test

sub test()

call RC()

end sub

excel se plante-il aussi ?

Bonsoir,

comme dit sylchat : Sans fichier ni code cela sera difficile de voir ce qui ne marche pas

Des fichiers réduits au minimum nécessaires seraient les bienvenus.

Sinon met un Stop au début de ta macro appellée et fais en pas à pas avec F8 pour trouver la ligne en cause.

D'autre part je vois beaucoup de variables d'utilisée dans cette macro (PremièreColonneJours etc). Sont-elles bien créées et visibles par la macro ?

eric

Rechercher des sujets similaires à "appel macro fait planter"