Erreur sur une macro (VBA ) excel
Résolu/Fermé
A voir également:
- Erreur sur une macro (VBA ) excel
- Erreur 0x80070643 - Accueil - Windows
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Calculer une moyenne sur excel - Guide
- Déplacer une colonne excel - Guide
3 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
Modifié par pilas31 le 21/05/2010 à 10:53
Modifié par pilas31 le 21/05/2010 à 10:53
Bonjour à tous,
A première vue c'est ce test qui n'est pas bon :
InStr(1, CStr(Range("C7").Value) <> "613")
Ecrire plutôt :
InStr(1, CStr(Range("C7").Value), "613") <> 0 idem pour D7 et E7
ou bien InStr(1, CStr(Range("C7").Value), "613") = 0 selon si l'on souhaite que la chaine contienne ou non "613"
A+
Cordialement,
A première vue c'est ce test qui n'est pas bon :
InStr(1, CStr(Range("C7").Value) <> "613")
Ecrire plutôt :
InStr(1, CStr(Range("C7").Value), "613") <> 0 idem pour D7 et E7
ou bien InStr(1, CStr(Range("C7").Value), "613") = 0 selon si l'on souhaite que la chaine contienne ou non "613"
A+
Cordialement,
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
21 mai 2010 à 10:42
21 mai 2010 à 10:42
Bonjour,
quelle ligne te génère une erreur ? Quel est le message d'erreur renvoyé par VBA ?
Sans ces informations, il est difficile de te répondre correctement.
Cordialement.
quelle ligne te génère une erreur ? Quel est le message d'erreur renvoyé par VBA ?
Sans ces informations, il est difficile de te répondre correctement.
Cordialement.
bonjour
avant tous merci de repondre a ma question
donc en faite je n'ai aucun message d'erreur qui s'affiche et aucune ligne qui ne marche pas mais seulement la condition du "If Range("K11") > Range("K9") And InStr(1, CStr(Range("C7").Value) <> "613") And InStr(1, CStr(Range("D7").Value) <> "613") And InStr(1, CStr(Range("E7").Value) <> "613") Then " ne marche pas. j'obtien rien dans mon tableau
avant tous merci de repondre a ma question
donc en faite je n'ai aucun message d'erreur qui s'affiche et aucune ligne qui ne marche pas mais seulement la condition du "If Range("K11") > Range("K9") And InStr(1, CStr(Range("C7").Value) <> "613") And InStr(1, CStr(Range("D7").Value) <> "613") And InStr(1, CStr(Range("E7").Value) <> "613") Then " ne marche pas. j'obtien rien dans mon tableau
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
21 mai 2010 à 14:15
21 mai 2010 à 14:15
Re bonjour,
Je répond à la dernière question.
Pour éliminer les lignes dans lesquelles la valeur C7 exsite déjà voila ma proposition :
à inserer avant le ENDIF
Le principe est de reparcourir (à l'envers) toutes les lignes du tableau depuis i-1 jusquen haut et de tester si la valeur dans C7 existe déjà.
Il faut vérifier si le tableau s'arrète bien en ligne 2 et si les test sont bien cela
A+
Je répond à la dernière question.
Pour éliminer les lignes dans lesquelles la valeur C7 exsite déjà voila ma proposition :
à inserer avant le ENDIF
...... 'Insérer une ligne dans le tableau "Tab récup données" fichier "Saisie" Worksheets("Tab récup données").Rows(2).Insert Shift:=xlShiftDown ' supprimer les doublons : For ilig = i - 1 To 2 Step -1 If Workbooks("Saisie.xls").Sheets("Tab récup données").Cells(ilig, 1).Value = Range("C7").Value _ Or Workbooks("Saisie.xls").Sheets("Tab récup données").Cells(ilig, 2).Value = Range("C7").Value Then Workbooks("Saisie.xls").Sheets("Tab récup données").Rows(ilig).Delete Shift:=xlUp End If Next ilig Endif
Le principe est de reparcourir (à l'envers) toutes les lignes du tableau depuis i-1 jusquen haut et de tester si la valeur dans C7 existe déjà.
Il faut vérifier si le tableau s'arrète bien en ligne 2 et si les test sont bien cela
A+
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
25 mai 2010 à 18:39
25 mai 2010 à 18:39
Bonjour Pixel,
Je suis resté absent un moment je n'ai donc pas vu le dernier message.
Pour le test, oui il faut l'adapter en se posant la question, une ligne doit être éliminée quand une certaine condition est remplie.
"B7=au nom du fournisseur,
cependant cette donne je veux voir si elle est dans toute la colonne C"
J'avoue que je ne comprends pas cette condition. Peux-tu être un peu plus explicite ?
A+
Je suis resté absent un moment je n'ai donc pas vu le dernier message.
Pour le test, oui il faut l'adapter en se posant la question, une ligne doit être éliminée quand une certaine condition est remplie.
"B7=au nom du fournisseur,
cependant cette donne je veux voir si elle est dans toute la colonne C"
J'avoue que je ne comprends pas cette condition. Peux-tu être un peu plus explicite ?
A+
21 mai 2010 à 10:54
21 mai 2010 à 10:57
alors il faut tester par rapport à 1 si C7 commence par 613 alors le InStr donnera 1
21 mai 2010 à 10:58
21 mai 2010 à 11:00
21 mai 2010 à 11:00
If Range("K11") > Range("K9") And InStr(1, CStr(Range("C7").Value), "613") = 1 And InStr(1, CStr(Range("D7").Value), "613") =1 And InStr(1, CStr(Range("E7").Value), "613") = 1 Then