Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Défintion d'une plage dans une macro

  • Initiateur de la discussion Initiateur de la discussion ziton
  • 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 !

Z

ziton

Guest
Bonjour,

Peut-on définir une étendue sur une autre feuille (ex: calcul) que la feuille qui active la macro ?

pour explication, ci-joint le code de ma macro :

Private Sub Worksheet_Activate() //feuille selectionnée = Avancement
Dim J As Long
Dim Numlig As Long
Numlig = 26
Dim Plage As Range
Set Plage = ThisWorkbook.Sheets("Calcul").Range("B1", [B65000].End(xlUp)) // Ca coince a ce niveau, mais je ne cromprends pas pourquoi
For J = 1 To Plage.Cells.Count Step 1
If Plage.Cells(J).Value <> "" Then
Sheets("Avancement").Cells(Numlig, 1) = Plage.Cells(J).Value
Numlig = Numlig + 1
End If
Next
End Sub

NB : ceci est ma première macro, réalisée grace à vos réponses et vos tutos. Un grand merci.
 
Re : Défintion d'une plage dans une macro

Salut ziton et Bienvenu, le Forum

Je te conseil de nommer ta Plage B1:B65000

Insertion/Nom/définir

Noms dans le Classeur = PLA par exemple
Fait référence à: =DECALER(Calcul!$B$1;;;NBVAL(Calcul!$B:$B))

et met ton code comme ceci

Code:
Private Sub Worksheet_Activate()
Dim Numlig As Long
Numlig = 26
Dim Plage As Range
Set Plage = ThisWorkbook.Sheets("Calcul").Range("[B]PLA[/B]") 
For J = 1 To Plage.Cells.Count Step 1
If Plage.Cells(J).Value <> "" Then
Sheets("Avancement").Cells(Numlig, 1) = Plage.Cells(J).Value
Numlig = Numlig + 1
End If
Next
End Sub
ça devrait marcher

Bonne Journée
 
Re : Défintion d'une plage dans une macro

Merci Dull pour ce retour.

J'ai regardé dans l'aide, mais je ne comprend pas comment utilisée ou déclarée la fonction DECALER.
 
Re : Défintion d'une plage dans une macro

Bonjour,

Sinon, en nommant les plages de départ PlageCalc et d'arrivée PlageAv, ce code dans la feuille "Avancement" fait l'affaire :

Code:
Private Sub Worksheet_Activate()
Worksheets("Calcul").Range("PlageCalc").Copy Worksheets("Avancement").Range("PlageAv")
End Sub

Cordialement
 
Re : Défintion d'une plage dans une macro

Bonjour mécano41,

Je suis pas sur que ton code permette de supprimer les cellules vides. Je fait le test et je vous fait un retour dans la journée.

Ziton
 
- 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
4
Affichages
737
Réponses
5
Affichages
915
Réponses
10
Affichages
669
Réponses
5
Affichages
575
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…