Probleme "Else without If"
Fermé
Quenton
-
21 janv. 2013 à 12:11
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 24 janv. 2013 à 11:51
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 24 janv. 2013 à 11:51
A voir également:
- 'Else' without a previous 'if'
- Mouse without borders - Guide
- Connexion messenger if - Guide
- Else sans if vba ✓ - Forum VB / VBA
- Makes pointer from integer without a cast ✓ - Forum C
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
12 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 janv. 2013 à 12:49
21 janv. 2013 à 12:49
Bonjour,
Tu dois indenté ton code, cs erreur seront plus facile à détecter.
Les variables déclarées dans une procédure ne sont pas "visible" dans une autre procédure.
Pour cela il faut les déclarer en haut du module et de préférence mettre des noms qui ne prète pas à confusion comme par exemple Ligne ou Colonne
De cette façon tu peu te servir de la deuxième procédure qui dans le cas présent n'est pas fort nécessaire.
A+
Tu dois indenté ton code, cs erreur seront plus facile à détecter.
Sub MHRelated1Hours() Dim i As Integer Dim j As Integer For j = 1 To 9999 If Cells(j + 1, "G").Value > 0 And Cells(j, "G") = "" Then For i = j + 1 To j + 300 If Cells(i, "G") > 0 Then Cells(j, "F").Value = Cells(j, "F").Value + Cells(i, "G").Value 'Call Related1_Addition Else Exit For End If Next i End If Next End Sub
Les variables déclarées dans une procédure ne sont pas "visible" dans une autre procédure.
Pour cela il faut les déclarer en haut du module et de préférence mettre des noms qui ne prète pas à confusion comme par exemple Ligne ou Colonne
Dim Ligne as long Dim Colonne as integer
De cette façon tu peu te servir de la deuxième procédure qui dans le cas présent n'est pas fort nécessaire.
A+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 21/01/2013 à 12:46
Modifié par pijaku le 21/01/2013 à 12:46
Bonjour,
Il ne te manquerai pas, par hasard, un Next? Je vois deux "For", mais un seul "Next" dans le code donné plus haut...
Cordialement,
Franck P
Il ne te manquerai pas, par hasard, un Next? Je vois deux "For", mais un seul "Next" dans le code donné plus haut...
Cordialement,
Franck P
Parfait merci beaucoup,
Il me semblait bien que c'était quelque chose comme ca. Je n'ai plus d'erreur sur VBA, mais sur Excel maitenant...
Lorsque je souhaite lancer la macro, il me dit : "run time error : 13. Type mismatch" en me surlignant la ligne
Cells(j, "F").Value = Cells(j, "F").Value + Cells(i, "G").Value
Cela signifie-t-il que la ligne n'est pas écrit correctement ?
Merci de m'aider si quelqu'un sait.
En tous cas ça fait vraiment plaisir d'avoir des réponses si rapides et de pouvoir avancer !
Il me semblait bien que c'était quelque chose comme ca. Je n'ai plus d'erreur sur VBA, mais sur Excel maitenant...
Lorsque je souhaite lancer la macro, il me dit : "run time error : 13. Type mismatch" en me surlignant la ligne
Cells(j, "F").Value = Cells(j, "F").Value + Cells(i, "G").Value
Cela signifie-t-il que la ligne n'est pas écrit correctement ?
Merci de m'aider si quelqu'un sait.
En tous cas ça fait vraiment plaisir d'avoir des réponses si rapides et de pouvoir avancer !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
22 janv. 2013 à 09:07
22 janv. 2013 à 09:07
Bonjour,
Salut tout le monde,
Bonne année à vous 3...
run time error : 13. Type mismatch provient peut être d'un mauvais type de données dans les cellules...
Si Fj = 3 et Gi = "pomme de terre", la ligne : Cells(j, "F").Value = Cells(j, "F").Value + Cells(i, "G").Value revoit une erreur de type 13.
Plus de renseignements, Cf aide de VBA :
Type incompatible (erreur 13)
Visual Basic peut convertir et forcer plusieurs valeurs pour effectuer des affectations de type de données qui étaient impossibles dans des versions antérieures. Cependant, cette erreur peut toujours se produire et peut avoir les causes et solutions suivantes :
La variable ou la propriété n'est pas du type approprié. Par exemple, une variable nécessitant une valeur entière ne peut pas accepter de valeur de chaîne sauf si cette valeur peut être reconnue comme un entier.
Essayez d'effectuer des affectations uniquement entre types de données compatibles. Par exemple, un Integer peut toujours être affecté à une variable de type Long, un type Single peut toujours être affecté à une variable de type Double, et n'importe quel type (à l'exception d'un type défini par l'utilisateur) peut être affecté à une variable de type Variant.
Un objet a été passé à une procédure attendant une propriété ou une valeur simple.
Passez la propriété simple appropriée ou appelez une méthode adaptée à l'objet.
Un nom de module ou de projet a été utilisé à l'endroit où une expression était attendue, par exemple :
Debug.Print MyModule
Spécifiez une expression pouvant être affichée.
Vous avez tenté de combiner une gestion d'erreurs Basic traditionnelle avec des valeurs de type Variant ayant le sous-type Error (10, vbError), par exemple :
Error CVErr(n)
Pour générer à nouveau une erreur, vous devez trouver la correspondance à une erreur Visual Basic intrinsèque ou définie par l'utilisateur, puis générer cette erreur.
Une valeur CVErr ne peut pas être convertie en Date. Par exemple :
MyVar = CDate(CVErr(9))
Utilisez une instruction Select Case ou une structure similaire pour mapper le renvoi de CVErr à ce type de valeur.
Au moment de l'exécution, cette erreur indique généralement qu'une variable de type Variant utilisée dans une expression a un sous-type incorrect, ou qu'une variable de type Variant contient un tableau apparaissant dans une instruction Print #.
Pour imprimer des tableaux, créez une boucle affichant chaque élément individuellement.
Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
Salut tout le monde,
Bonne année à vous 3...
run time error : 13. Type mismatch provient peut être d'un mauvais type de données dans les cellules...
Si Fj = 3 et Gi = "pomme de terre", la ligne : Cells(j, "F").Value = Cells(j, "F").Value + Cells(i, "G").Value revoit une erreur de type 13.
Plus de renseignements, Cf aide de VBA :
Type incompatible (erreur 13)
Visual Basic peut convertir et forcer plusieurs valeurs pour effectuer des affectations de type de données qui étaient impossibles dans des versions antérieures. Cependant, cette erreur peut toujours se produire et peut avoir les causes et solutions suivantes :
La variable ou la propriété n'est pas du type approprié. Par exemple, une variable nécessitant une valeur entière ne peut pas accepter de valeur de chaîne sauf si cette valeur peut être reconnue comme un entier.
Essayez d'effectuer des affectations uniquement entre types de données compatibles. Par exemple, un Integer peut toujours être affecté à une variable de type Long, un type Single peut toujours être affecté à une variable de type Double, et n'importe quel type (à l'exception d'un type défini par l'utilisateur) peut être affecté à une variable de type Variant.
Un objet a été passé à une procédure attendant une propriété ou une valeur simple.
Passez la propriété simple appropriée ou appelez une méthode adaptée à l'objet.
Un nom de module ou de projet a été utilisé à l'endroit où une expression était attendue, par exemple :
Debug.Print MyModule
Spécifiez une expression pouvant être affichée.
Vous avez tenté de combiner une gestion d'erreurs Basic traditionnelle avec des valeurs de type Variant ayant le sous-type Error (10, vbError), par exemple :
Error CVErr(n)
Pour générer à nouveau une erreur, vous devez trouver la correspondance à une erreur Visual Basic intrinsèque ou définie par l'utilisateur, puis générer cette erreur.
Une valeur CVErr ne peut pas être convertie en Date. Par exemple :
MyVar = CDate(CVErr(9))
Utilisez une instruction Select Case ou une structure similaire pour mapper le renvoi de CVErr à ce type de valeur.
Au moment de l'exécution, cette erreur indique généralement qu'une variable de type Variant utilisée dans une expression a un sous-type incorrect, ou qu'une variable de type Variant contient un tableau apparaissant dans une instruction Print #.
Pour imprimer des tableaux, créez une boucle affichant chaque élément individuellement.
Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
21 janv. 2013 à 14:16
21 janv. 2013 à 14:16
Bonjour Quenton,
Apprendre à programmer c'est aussi apprendre à INDENTER le CODE !!
Vous auriez indenter votre code, vous l'auriez vu tout de suite !
Ajouter ou supprimer le texte en gras:
Apprendre à programmer c'est aussi apprendre à INDENTER le CODE !!
Vous auriez indenter votre code, vous l'auriez vu tout de suite !
Ajouter ou supprimer le texte en gras:
Sub MHRelated1Hours()
Dim i As Integer
Dim j As Integer
'
For j = 1 To 9999
If Cells(j + 1, "G").Value > 0 And Cells(j, "G") Is Blank Then
For i = j + 1 To j + 300
If Cells(i, "G") > 0 Then
Call Related1_Addition
Else
Exit For
End If
Next i a AJOUTER
Else
Next a SUPPRIMER
End If
Next j a AJOUTER
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 21/01/2013 à 16:10
Modifié par lermite222 le 21/01/2013 à 16:10
Hello Heliotte,
Bizarre, bizarre.. Vous avez..
Normalement ça devrait aller, mais Excel à quelque fois des réactions... bizarre :-)
essaye..
Tu dis..
Et pourquoi 9999 ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bizarre, bizarre.. Vous avez..
Normalement ça devrait aller, mais Excel à quelque fois des réactions... bizarre :-)
essaye..
Sub MHRelated1Hours() Dim i As Integer Dim j As Integer Dim Buff For j = 1 To 9999 If Cells(j + 1, "G").Value > 0 And Cells(j, "G") = "" Then For i = j + 1 To j + 300 If Cells(i, "G") > 0 Then Buff = Cells(j, "F").Value + Cells(i, "G").Value Cells(j, "F").Value = Buff 'Call Related1_Addition Else Exit For End If Next i End If Next End Sub
Tu dis..
Et pourquoi 9999 ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 21/01/2013 à 17:45
Modifié par Heliotte le 21/01/2013 à 17:45
Bonsoir Lermite, bonsoir à tous,
Je suis vraiment désolé .. mais quand j'ai répondu à 14:16, il n'y avait aucune autre réponse .. c'est même cela qui m'a fait répondre !!
Petit bug ou mauvaise manipulation .. à moins que les câbles eux aussi ne se les gèles :-)
Je suis vraiment désolé .. mais quand j'ai répondu à 14:16, il n'y avait aucune autre réponse .. c'est même cela qui m'a fait répondre !!
Petit bug ou mauvaise manipulation .. à moins que les câbles eux aussi ne se les gèles :-)
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 21/01/2013 à 18:24
Modifié par lermite222 le 21/01/2013 à 18:24
Pas de souci Heliotte, tu n'est pas le premier à qui ça arrive... ont clic sur le scroll et op, ça passe une réponse.
A+
EDIT : comme moi d'ailleurs, je n'avais pas encore vu le message... Bonjour Pijaku
A+
EDIT : comme moi d'ailleurs, je n'avais pas encore vu le message... Bonjour Pijaku
Bonjour a tous,
Merci pour vos réponses rapides. Il y avait effectivement une petite cellule contenant du texte qui s'était glissé...
J'ai mis 9999 comme limite dans la boucle parce que je ne sais pas comment renseigner proprement "effectuer la boucle jusqu'à ce que la cellule soit vide". Si quelqu'un pouvait me donner l'astuce ce serait parfait !
Sinon j'ai un autre probleme sur une autre macro qui vise a supprimer des doublons. En gros, la colonne "B" contient des codes trier par ordre croissant et je souhaite qu'il n'y ait plus qu'un exemplaire de chaque code (celui dont la valeur en colonne "F" est la plus importante).
Voici ce que j'ai écrit :
Sub Delete_Lignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 9999 To 3 Step -1
If Cells(i, "B") = Cells(i + 1, "B") Then
If Cells(i, "F").Value > Cells(i + 1, "F").Value Then
Rows(i + 1).Delete
Else
Rows(i).Delete
End If
End If
Next i
End Sub
Et lorsque je l'execute, il surligne la ligne Rows(i).Delete et me dit :
Run time Error 1004
Delete method of range class failed
Si quelqu'un a une idée...
Merci encore pour votre aide !
A bientot
Merci pour vos réponses rapides. Il y avait effectivement une petite cellule contenant du texte qui s'était glissé...
J'ai mis 9999 comme limite dans la boucle parce que je ne sais pas comment renseigner proprement "effectuer la boucle jusqu'à ce que la cellule soit vide". Si quelqu'un pouvait me donner l'astuce ce serait parfait !
Sinon j'ai un autre probleme sur une autre macro qui vise a supprimer des doublons. En gros, la colonne "B" contient des codes trier par ordre croissant et je souhaite qu'il n'y ait plus qu'un exemplaire de chaque code (celui dont la valeur en colonne "F" est la plus importante).
Voici ce que j'ai écrit :
Sub Delete_Lignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 9999 To 3 Step -1
If Cells(i, "B") = Cells(i + 1, "B") Then
If Cells(i, "F").Value > Cells(i + 1, "F").Value Then
Rows(i + 1).Delete
Else
Rows(i).Delete
End If
End If
Next i
End Sub
Et lorsque je l'execute, il surligne la ligne Rows(i).Delete et me dit :
Run time Error 1004
Delete method of range class failed
Si quelqu'un a une idée...
Merci encore pour votre aide !
A bientot
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 23/01/2013 à 10:06
Modifié par pijaku le 23/01/2013 à 10:06
Bonjour,
Pour remplacer 9999 par le numéro de la dernière ligne non vide de la colonne G :
ou Columns(7) = 7ème colonne = colonne G
Pour l'erreur Run time 1004... Bof, plein de choses sont possibles. Et là faut tester avec le fichier.
A titre d'exemple : feuille protégée?
Pour remplacer 9999 par le numéro de la dernière ligne non vide de la colonne G :
Dim DernLigne As Long DernLigne = Columns(7).Find("*", , , , xlByColumns, xlPrevious).Row 'et ta boucle, au lieu de for i = 1 To 9999 devient : For i = 1 To DernLigne
ou Columns(7) = 7ème colonne = colonne G
Pour l'erreur Run time 1004... Bof, plein de choses sont possibles. Et là faut tester avec le fichier.
A titre d'exemple : feuille protégée?
Très bien, je vais tester ça, merci.
Pour l'erreur 1004, je ne sais pas par ou chercher parce qu'auparavant, tout marchait jusqu'à ce que je change un peu la boucle et depuis, impossible de revenir a quelque chose de fonctionnel !
Sinon, pour l'instant j'enregistre toutes mes macros dans un fichier Excel "a ouvrir pour macros" et j'ouvre donc a la fois ce fichier et celui sur lequel je souhaite travailler. Je trouve cette méthode un peu gitan, et voudrais savoir s'il existe une solution plus propre ?
Merci encore pijaku !
Pour l'erreur 1004, je ne sais pas par ou chercher parce qu'auparavant, tout marchait jusqu'à ce que je change un peu la boucle et depuis, impossible de revenir a quelque chose de fonctionnel !
Sinon, pour l'instant j'enregistre toutes mes macros dans un fichier Excel "a ouvrir pour macros" et j'ouvre donc a la fois ce fichier et celui sur lequel je souhaite travailler. Je trouve cette méthode un peu gitan, et voudrais savoir s'il existe une solution plus propre ?
Merci encore pijaku !
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
23 janv. 2013 à 11:29
23 janv. 2013 à 11:29
Sinon, pour l'instant j'enregistre toutes mes macros dans un fichier Excel "a ouvrir pour macros" et j'ouvre donc a la fois ce fichier et celui sur lequel je souhaite travailler. Je trouve cette méthode un peu gitan, et voudrais savoir s'il existe une solution plus propre
Si tes macros doivent servir pour d'autre appli ça pourrait éventuellement se comprendre mais il faudrait alors en faire des fonctions paramétrées.
Donc ici.. Non, aucun intérêt.
Pour le dernière ligne moi j'emploi
Et pour supprimer les doublons..
A+
Si tes macros doivent servir pour d'autre appli ça pourrait éventuellement se comprendre mais il faudrait alors en faire des fonctions paramétrées.
Donc ici.. Non, aucun intérêt.
Pour le dernière ligne moi j'emploi
DerLig = Cells(Rows.Count, 1).End(xlUp).Row
Et pour supprimer les doublons..
Sub Delete_Lignes() Sheets("Feuil1").Range("A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address). _ RemoveDuplicates Columns:=2, Header:=xlYes End SubPas oublier d'adapter le nom de la feuille.
A+
Les solutions pour appeler la derniere ligne marche parfaitement. Merci.
Evidemment, il y a toujours des petits obstacles. Voici la prochaine énigme pour vous !
J'ai voulu compiler toutes mes macros en une pour que ce soit plus simple a lancer. Voici ce que ça donne :
Sub Total_Transformation()
Call Preparation_from_CMP_to_DB
Call MHRelated1Hours
Call MHRelated2Hours
Call Related1_Names
Call Related2_Names
Call Appl_filter
Call Delete_Lignes
Call Finalisation
Call Police
Call Position_texte
End Sub
Ca a peut etre un aspect un peu barbare mais bon... Individuellement, toutes ces macros fonctionnent. Mais quand je lance celle-ci, il me sort cette error compile : "ambiguous name detected ~".
Une idée ... ?
Merci encore !
Evidemment, il y a toujours des petits obstacles. Voici la prochaine énigme pour vous !
J'ai voulu compiler toutes mes macros en une pour que ce soit plus simple a lancer. Voici ce que ça donne :
Sub Total_Transformation()
Call Preparation_from_CMP_to_DB
Call MHRelated1Hours
Call MHRelated2Hours
Call Related1_Names
Call Related2_Names
Call Appl_filter
Call Delete_Lignes
Call Finalisation
Call Police
Call Position_texte
End Sub
Ca a peut etre un aspect un peu barbare mais bon... Individuellement, toutes ces macros fonctionnent. Mais quand je lance celle-ci, il me sort cette error compile : "ambiguous name detected ~".
Une idée ... ?
Merci encore !
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 24/01/2013 à 08:39
Modifié par lermite222 le 24/01/2013 à 08:39
C'est que tu à deux ou plus de macros qui ont le même nom.
Notre : il y a aussi la touche F1 qui peu t'aidé.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Notre : il y a aussi la touche F1 qui peu t'aidé.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Oui désolé de vous faire perdre votre temps, c'est vrai que j'ai (encore)° fait une erreur d'inatention... Dur dur de s'y retrouver les premières fois qu'on utilise VBA. En tous cas merci de l'aide, ça aide vraiment beaucoup !
Si je puis me permettre d'abuser encore un peu... J'ai deux problèmes et après j'aurais vraiment tout terminé niquel (quoiqu'on est jamais trop a l'abri). Voici déjà le premier.
Je souhaite appliquer un filtre a toutes les colonnes remplies (de A à I) puis trier par ordre croissant selon la colonne B. En enregistrant une macro, voici le code qu'il me sort. Malheureusement, en testant ce code, il me dit direct : "Run time error 91. Object variable or With block variable not set" en surlignant la ligne en gras.
Je suis désepéré ! Que dois-je faire pour que cela fonctionne !?
Sub Appl_Filter()
Range("A2:I2").Select
Selection.AutoFilter
ActiveWorkbook.Worksheet("ExcelOutputOfCheckedItems").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("ExcelOutputOfCheckedItems").AutoFilter.Sort. _
SortFields.Add Key:=Range("B2"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ExcelOutputOfCheckedItems").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Si je puis me permettre d'abuser encore un peu... J'ai deux problèmes et après j'aurais vraiment tout terminé niquel (quoiqu'on est jamais trop a l'abri). Voici déjà le premier.
Je souhaite appliquer un filtre a toutes les colonnes remplies (de A à I) puis trier par ordre croissant selon la colonne B. En enregistrant une macro, voici le code qu'il me sort. Malheureusement, en testant ce code, il me dit direct : "Run time error 91. Object variable or With block variable not set" en surlignant la ligne en gras.
Je suis désepéré ! Que dois-je faire pour que cela fonctionne !?
Sub Appl_Filter()
Range("A2:I2").Select
Selection.AutoFilter
ActiveWorkbook.Worksheet("ExcelOutputOfCheckedItems").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("ExcelOutputOfCheckedItems").AutoFilter.Sort. _
SortFields.Add Key:=Range("B2"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ExcelOutputOfCheckedItems").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 24/01/2013 à 12:03
Modifié par lermite222 le 24/01/2013 à 12:03
Re,
à remplacer par
Cette fonction sert pour supprimer le filtre précédant mais génère une erreur s'il n'y en a pas d'où la gestion de l'erreur.
A+
EDIT :
Ton Autofilter là ou y doit pas être m'a induit en erreur...
Et supprime Autofilter aussi dans la ligne suivante.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
ActiveWorkbook.Worksheet("ExcelOutputOfCheckedItems").AutoFilter.Sort. _ SortFields.Clear
à remplacer par
On Error Resume Next Sheets("ExcelOutputOfCheckedItems").AutoFilter On Error Goto 0
Cette fonction sert pour supprimer le filtre précédant mais génère une erreur s'il n'y en a pas d'où la gestion de l'erreur.
A+
EDIT :
Ton Autofilter là ou y doit pas être m'a induit en erreur...
ActiveWorkbook.Worksheets("ExcelOutputOfCheckedItems").Sort.SortFields.Clear
Et supprime Autofilter aussi dans la ligne suivante.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.