Vba insert row
Fermé
zina1234
Messages postés
6
Date d'inscription
mardi 27 février 2018
Statut
Membre
Dernière intervention
4 février 2019
-
28 févr. 2018 à 13:37
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 - 1 mars 2018 à 11:42
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 - 1 mars 2018 à 11:42
A voir également:
- Vba for each row
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Idm for mac - Télécharger - Téléchargement & Transfert
4 réponses
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
28 févr. 2018 à 14:13
28 févr. 2018 à 14:13
Bonjour,
Tu fais un For Each sur un objet qui s'agrandit.
Utilise plutôt une boucle de ce type :
step -1 car c'est inutile de tester une ligne que tu viendrais d'insérer d'une part, et d'autre part tu rencontrerais le même pb : les lignes de fin ne seraient pas testées.
eric
Tu fais un For Each sur un objet qui s'agrandit.
Utilise plutôt une boucle de ce type :
For lig = Lastrow to 1 step -1
step -1 car c'est inutile de tester une ligne que tu viendrais d'insérer d'une part, et d'autre part tu rencontrerais le même pb : les lignes de fin ne seraient pas testées.
eric
Jauster
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
40
Modifié le 28 févr. 2018 à 14:38
Modifié le 28 févr. 2018 à 14:38
Salut zina1234 (et salut eriiic),
Sauf erreur de ma part une erreur 13 ne concerne que 2 possibilités uniquement (?) :
- Soit le fichier est en mode lecture et ne peut pas être modifié
- Ou une variable est mal déclarée
Dans ce cas LastRow dépasse surement 32767.
Donc en plus d'utiliser la méthode d'Eriiic qui effectivement permet de vérifier aussi les lignes en-dessous des nouvelles lignes insérées, je vous conseille de vérifier votre variable LastRow à l'aide d'un espion VBA.
Si la variable dépasse vraiment 32767 il faudra la déclarer comme Long ou encore Dim LastRow&
Sauf erreur de ma part une erreur 13 ne concerne que 2 possibilités uniquement (?) :
- Soit le fichier est en mode lecture et ne peut pas être modifié
- Ou une variable est mal déclarée
Dans ce cas LastRow dépasse surement 32767.
Donc en plus d'utiliser la méthode d'Eriiic qui effectivement permet de vérifier aussi les lignes en-dessous des nouvelles lignes insérées, je vous conseille de vérifier votre variable LastRow à l'aide d'un espion VBA.
Si la variable dépasse vraiment 32767 il faudra la déclarer comme Long ou encore Dim LastRow&
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
28 févr. 2018 à 18:09
28 févr. 2018 à 18:09
Ah oui, je n'avais pas prêté attention au As Integer
zina1234
Messages postés
6
Date d'inscription
mardi 27 février 2018
Statut
Membre
Dernière intervention
4 février 2019
28 févr. 2018 à 18:36
28 févr. 2018 à 18:36
bonjour merci pour vos réponses, pour info le lastrow ne dépasse pas les 200 rows.
zina1234
Messages postés
6
Date d'inscription
mardi 27 février 2018
Statut
Membre
Dernière intervention
4 février 2019
1 mars 2018 à 09:05
1 mars 2018 à 09:05
les amis il ya toujours le msg d'erreur 13
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
1 mars 2018 à 09:17
1 mars 2018 à 09:17
Bonjour,
où en es-tu dans ton code ?
Merci de le mettre, de l'indenter, d'utiliser la balise Code (icone <>) et d'indiquer la ligne en erreur.
eric
où en es-tu dans ton code ?
Merci de le mettre, de l'indenter, d'utiliser la balise Code (icone <>) et d'indiquer la ligne en erreur.
eric
Jauster
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
40
1 mars 2018 à 11:42
1 mars 2018 à 11:42
UPDATE : Post du même auteur avec problème similaire ici : https://forums.commentcamarche.net/forum/affich-35233320-vba-formule-inseree-si-cellule-vide
Solution proposée :
Vous avez surement des #N/A dans votre colonne L. Quand votre code arrive sur cell.Value, la cellule avec #N/A ne peut pas être lue et VB affiche une erreur 13 de typ mismatch.
Ou bien vous récupérez une BDD sans #N/A, ou vous retirez les #N/A d'une manière ou d'une autre, ou vous gerez ceci avec un error handler.
Solution proposée :
Vous avez surement des #N/A dans votre colonne L. Quand votre code arrive sur cell.Value, la cellule avec #N/A ne peut pas être lue et VB affiche une erreur 13 de typ mismatch.
Ou bien vous récupérez une BDD sans #N/A, ou vous retirez les #N/A d'une manière ou d'une autre, ou vous gerez ceci avec un error handler.