ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufisant

  • Initiateur de la discussion Initiateur de la discussion MICHAEL
  • 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 !

MICHAEL

XLDnaute Occasionnel
Bonjour,

Pour quelle raison lorsque je supprime les données colonne B6 à B145 ainsi que k6 à k145
J'obtiens ces messages d'erreurs?


Merci pour vos réponses.
 

Pièces jointes

Re : ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufi

Bonjour,

essaye peut être comme suit :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B4:B145")) Is Nothing Then
Target = DateSerial(Cells(1, Target.Column), Month(Target), Day(Target))
End If
End Sub

bon après midi
@+
 
Re : ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufi

Re,

A noter, si ce code doit s'appliquer à toutes les feuilles de ton classeur tu peux le placer une seule fois comme ceci, dans le module "thisworkbook" :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B4:B145")) Is Nothing Then
Target = DateSerial(Cells(1, Target.Column), Month(Target), Day(Target))
End If
End Sub
 
Re : ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufi

Bonjour

exemple sur 2018
si tu effaces une des dates en B, ta macro considère que tu es dans la zone où elle agit, sauf que ton contenu est vide, donc pas une date
il faudrait tester si date :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B4:B145")) Is Nothing Then
If IsDate(Target.Value) Then Target = DateSerial(Cells(1, Target.Column), Month(Target), Day(Target))
End If
End Sub
 
Re : ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufi

Bonjour.

Tout cela ne répond pas à la question du demandeur.
Ce sont sans nul doute deux conséquences de la Private Sub Worksheet_Change dans les feuilles.
Il n'y est pas vérifié qu'une seule cellule est modifiée de sorte que la valeur de plusieurs est constituée d'un tableau qui ne saurait constituer un argument valable des fonctions Month et Day. Par ailleurs en l'absence d'instruction Application.EnableEvents = False devant la modification de Target, celle ci provoque aussitôt une ré-exécution de la Worksheet_Change alors que celle ci n'est pas encore terminée, d’où saturation de la pile quand des millions d'exécutions non terminées sont engagées.
 
Re : ERREUR EXECUTION '13' : icompatibilité de type. ou ERR '28' : espace pile insufi

D'autre l'on déjà fait, sauf pour ce qui est du Application.EnableEvents = False.
Je dirais donc :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Intersect(Target, Range("B4:B145")) Is Nothing Then Exit Sub
If IsDate(Target.Value) Then
   Application.EnableEvents = False
   Target = DateSerial(Me.[B1].Value, Month(Target), Day(Target))
   Application.EnableEvents = True
   End If
End Sub
 
- 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

B
Réponses
3
Affichages
12 K
B
Retour