Erreur de compilation
Résolu/Fermé
HAXitoo
Messages postés
57
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
4 juin 2014
-
Modifié par pijaku le 6/12/2013 à 10:03
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 6 déc. 2013 à 11:45
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 6 déc. 2013 à 11:45
A voir également:
- Erreur de compilation sub ou function non définie
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Erreur 38 free ✓ - Forum Mobile
3 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
Modifié par pijaku le 6/12/2013 à 10:03
Modifié par pijaku le 6/12/2013 à 10:03
Bonjour,
ton problème vient de ces lignes :
Call FindLastRow
j = 2
For i = 4 To LastRow
écris comme ca lastrow = rien donc il peut pas faire tourner la macro. il faut que tu fasses une déclaration de variable de manière àpouvoir la passer de findlastrow à worksheet_ activate.
Pour cela deux possibilités :
- soit tu déclares la variable en public
- soit tu la fais passer de l'une à lautre
Pour le résoudre, tu as deux solutions, soit tu écris comme ca :
Soit tu écris comme ca :
ton problème vient de ces lignes :
Call FindLastRow
j = 2
For i = 4 To LastRow
écris comme ca lastrow = rien donc il peut pas faire tourner la macro. il faut que tu fasses une déclaration de variable de manière àpouvoir la passer de findlastrow à worksheet_ activate.
Pour cela deux possibilités :
- soit tu déclares la variable en public
- soit tu la fais passer de l'une à lautre
Pour le résoudre, tu as deux solutions, soit tu écris comme ca :
public lastrow as variant Sub FindLastRow 'ton code end sub Private Sub Worksheet_Activate() 'ton code end sub
Soit tu écris comme ca :
sub FindLastRow (lastrow) 'ton code end sub Private Sub Worksheet_Activate() Application.EnableEvents = False Application.ScreenUpdating = False Dim avarSplit() As String Dim i As Integer Dim j As Integer Call FindLastRow (lastrow) 'la suite de ton code end sub
HAXitoo
Messages postés
57
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
4 juin 2014
6 déc. 2013 à 10:22
6 déc. 2013 à 10:22
Merci pour cette réponse rapide. Alors j'ai essayé la première façon de faire et j'ai une nouvelle erreur "Erreur d'exécution 28" : Espace pile insuffisant.
Je n'ai pas compris la deuxième manière de faire, la différence entre 'ton code et 'la suite de ton code.
Je n'ai pas compris la deuxième manière de faire, la différence entre 'ton code et 'la suite de ton code.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
6 déc. 2013 à 10:37
6 déc. 2013 à 10:37
Mets le code de la macro find lastrow ici et je te fais tes modifs
HAXitoo
Messages postés
57
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
4 juin 2014
Modifié par HAXitoo le 6/12/2013 à 10:43
Modifié par HAXitoo le 6/12/2013 à 10:43
Alors c'est ce que j'ai posté dans le premier message. Excuse j'avais encore ça:
Public LastRow As Long
Public LastRowD As Long
Public LastRowI As Long
Public Sub FindLastRow()
LastRow = Feuil1.Cells(Rows.Count, "E").End(xlUp).Row
LastRowD = Feuil3.Cells(Rows.Count, "B").End(xlUp).Row
LastRowI = Feuil3.Cells(Rows.Count, "K").End(xlUp).Row
End Sub
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
Modifié par melanie1324 le 6/12/2013 à 11:09
Modifié par melanie1324 le 6/12/2013 à 11:09
Bonjour,
Alors je vois ou est ton problème :
Ta macro :Private Sub Worksheet_Activate()
ne doit travailler que sur la feuille qui est modifiée.
Autrement dit, si c'est la feuille 1, toutes tes actions ne doivent être que la feuille 1. or, ta macro, find lastrow agis sur 3 feuilles donc ca ne peut pas coller.
Faut que tu modifies findlastrow comme suit :
Alors je vois ou est ton problème :
Ta macro :Private Sub Worksheet_Activate()
ne doit travailler que sur la feuille qui est modifiée.
Autrement dit, si c'est la feuille 1, toutes tes actions ne doivent être que la feuille 1. or, ta macro, find lastrow agis sur 3 feuilles donc ca ne peut pas coller.
Faut que tu modifies findlastrow comme suit :
Public LastRow As Long Public LastRowD As Long Public LastRowI As Long Public Sub FindLastRow() if activesheet.name = "Feuil1" then LastRow = Feuil1.Cells(Rows.Count, "E").End(xlUp).Row else LastRowD = Feuil3.Cells(Rows.Count, "B").End(xlUp).Row LastRowI = Feuil3.Cells(Rows.Count, "K").End(xlUp).Row end if End Sub
HAXitoo
Messages postés
57
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
4 juin 2014
Modifié par HAXitoo le 6/12/2013 à 11:22
Modifié par HAXitoo le 6/12/2013 à 11:22
Alors le code s'éxecute sans erreur, mais il ne se passe rien dans ma feuille.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
6 déc. 2013 à 11:45
6 déc. 2013 à 11:45
On va faire plus simple, envoies ton fichier.
Mets le sur cjoint.com et mets le lien ici.
Mets le sur cjoint.com et mets le lien ici.