Message erreur 13 alors que la macro fonctionne

Bruno3838

XLDnaute Nouveau
Bonjour à tous,

Je viens de créer une macro pour supprimer toutes les feuilles non nécessaires en fonction de ma Val1:


Sub supfeuille()

Dim Val1 As Integer
Val1 = Sheets("Packing list").[t16].Value
Application.DisplayAlerts = False
For I = Sheets.Count To 1 Step -1
If Sheets(I).Name <= Val1 Then
Else
Sheets(I).Delete
End If
Next

End Sub

Elle supprimer toutes les feuilles que je souhaite mais à la fin j'ai le message suivant :

Microsoft Virtual Basic

Erreur d'exécution '13':

Type incompatible

Avec le choix de cliquer sur Fin, Annuler

Merci pour votre aide
 

Bruno3838

XLDnaute Nouveau
Re : Message erreur 13 alors que la macro fonctionne

Bonjour Jean-Marcel,

Merci pour ton aide.

Voici le fichier.

Quand je rentre le nombre de caisse (cellule en jaune) mon tableau s'ajuste à la bonne longueur.

Je prends l'exemple de 3 caisses.

Mes feuilles 1 à 3 vont reprendre individuellement les données de la feuille packing list pour leur numéro de caisse respective.

Je souhaite donc supprimer les feuilles 4 et 5 en cliquant sur le bouton supprimer les feuilles.

La macro me supprime bien les feuilles mais fini par le message d'erreur.

Le fichier normal comprend 90 feuilles d'où l'intérêt d'automatiser la suppression.

Merci pour votre aide
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Message erreur 13 alors que la macro fonctionne

Re,

ceci fonctionne chez moi :
Code:
Sub supfeuille()
Dim Val1 As Integer
    Val1 = Sheets("Packing list").[t16].Value
Application.DisplayAlerts = False
For I = Sheets.Count To 1 Step -1
If Sheets(I).Name > Val1 Then Sheets(I).Delete
Next
Application.DisplayAlerts = True
End Sub
 

Bruno3838

XLDnaute Nouveau
Re : Message erreur 13 alors que la macro fonctionne

Merci pour la piste.

Je viens de faire ce code :

Sub supfeuille()

Dim Val1 As Integer
Val1 = Sheets("Packing list").[t16].Value
Application.DisplayAlerts = False
For I = Sheets.Count To 1 Step -1
If Sheets(I).Name = "Packing list" Then
Else
If Sheets(I).Name <= Val1 Then
Else
Sheets(I).Delete
End If
End If
Next

End Sub

et ça fonctionne !

Merci à vous deux pour votre aide.

A +
 

Discussions similaires

Réponses
3
Affichages
607

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom