Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion unrender
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

U

unrender

Guest
Bonjour à tous...

En fait, je m'arrache les cheveux sur un petit problème.
J'ai un For Each dans une procédure.
Si le classeur et la feuille auquels font références le For Each sont actifs à l'écran,
tout se passe bien.
Par contre, si je ne suis pas sur la bonne feuille ou si le focus est mis sur un autre
classeur, je reçois une erreur d'exécution 1004.
Pourtant, je pense avoir mis les bonnes infos dans le range (pplage)

Je ne sais pas si c'est très clair....

Code:
Dim wbp As Workbook
Dim tabligne(100, 1)


Set wbp = Workbooks("Pointage.xlsm")
Set wbbase = Workbooks.Open(ThisWorkbook.Path & "\Base.xlsm")

lastline = wbbase.Sheets(1).Range("A65536").End(xlUp).Row


i = 1

Set pplage = wbp.Sheets(2).Range(Cells(1, 10), Cells(lastline, 10))
For Each cc In pplage
    tabligne(pplage, 0) = wbp.Sheets(2).Cells(i, 10)
    tabligne(pplage, 1) = wbp.Sheets(2).Cells(i, 11)
    i = i + 1
Next


Avez-vous une idée ?

Merci...
 
Re : For Each....

Bonjour,

essaye en modifiant comme suit :
Code:
With wbp.Sheets(2)
    Set pplage = .Range(.Cells(1, 10), .Cells(lastline, 10))
    For Each cc In pplage
        tabligne(pplage, 0) = .Cells(i, 10)
        tabligne(pplage, 1) = .Cells(i, 11)
        i = i + 1
    Next
End With

bon après midi
@+
 
Re : For Each....

Bonjour.
Je ne voit pas comment ça peut marcher de toutes façon.
Vous tentez d'affecter quelque chose à un élément de tableau en précisant comme premier indice un variant contenant un tableau à 2 dimensions de lastline lignes x 1 colonne issue de la propriété Value (non précisée mais donc assumée par défaut) de la plage définie dans la variable pplage. Qu'est-ce qu'il devrait faire avec çà ?
À+
 
Re : For Each....

Bonjour unrender, Pierrot 🙂, Dranreb,
Je vois que les boules de cristals chauffent 😉. De mon coté j'ai vu ça:
VB:
With wbp.Sheets(2)
    Set pplage = .Range(.Cells(1, 10), .Cells(lastline, 10))
    For Each cc In pplage
        tabligne(i, 0) = .Cells(cc.Row, 10)
        tabligne(i, 1) = .Cells(cc.Row, 11)
        i = i + 1
    Next
End With
Mais allez savoir.....
Cordialement
 
Re : For Each....

Bonjour à tous et merci de vos réponses.

@ Dranreb : j'ai dû vous relire plusieurs fois pour vous comprendre LoL. j'ai cru que j'allais attraper une migraine, mais vous aviez raison, et Efgé à bien corrigé ça...
Je ne sais pas pourquoi j'ai mis pplage à la place de i dans tabligne !!!

Du coup la solution de Pierrot avec la petite correction d'Efgé fonctionne :

Code:
With wbp.Sheets(2)
     Set pplage = .Range(.Cells(1, 10), .Cells(lastline, 10))
     For Each cc In pplage
         tabligne(i, 0) = .Cells(cc.Row, 10)
         tabligne(i, 1) = .Cells(cc.Row, 11)
         i = i + 1
     Next
 End With

Que ce soit :
Code:
tabligne(i, 0) = .Cells(cc.Row, 10)
ou
Code:
tabligne(i, 0) = .Cells(i, 10)

Un grand merci à vous 3.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
527
Réponses
4
Affichages
730
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…