XL 2010 Selection d'une zone définie et non la derniére ligne non vide

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

Myst

XLDnaute Occasionnel
Bonjour le forum
Mon fichier fonctionne assez bien et j'aurais juste besoin de modifier la sélection de la zone a traiter
Actuellement la zone est identifié par
LastLigne = Range("D" & Rows.Count).End(xlUp).Row
LastColonne = Range("E2").End(xlToRight).Column
et je voudrais définir cette zone par les cellules E3 a P23 😵
merci
 

Pièces jointes

Bonjour Staple 1600
J'ai modifié en conséquence mais le code ne fonctionne plus

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'LastLigne = Range("D" & Rows.Count).End(xlUp).Row
'LastColonne = Range("E2").End(xlToRight).Column


'selection de la zone a traiter
Dim Zone As Range
Set Zone = Range("E3😛23")

'mise à jour de la couleur de police selon la colonne D
For i = 3 To LastLigne
CouleurPolice = Range("D" & i).Font.ColorIndex
Range("E" & i).Resize(1, LastColonne - 4).Interior.ColorIndex = CouleurPolice
Next i

'mise à jour de la couleur de cellule (gris) selon le contenu de la ligne 2
For j = 5 To LastColonne
If Cells(2, j).Font.ColorIndex = xlAutomatic Then
Cells(3, j).Resize(LastLigne - 2, 1).Interior.ColorIndex = 16 'gris
End If

'mise à jour en rouge des cellules vides et police "blanc" en ligne 2
If Cells(2, j).Font.ColorIndex = 2 Then 'couleur blanc
For k = 3 To LastLigne
If Cells(k, j) = "" Then Cells(k, j).Interior.ColorIndex = 3 'couleur Rouge
Next k
End If
Next j
Calculate
End Sub
 
Bonjour le forum

J'ai testé trois façons de faire et les trois identifient la plage que tu indiques E3:p23
La macro est installée dans un module standard.
VB:
Sub MacroTest()
Dim LastLigne As Long
Dim LastColonne As Long
Dim Zone As Range
LastLigne = Range("D" & Rows.Count).End(xlUp).Row
LastColonne = Range("E2").End(xlToRight).Column
'première façon
MsgBox Sheets("36").Range(Cells(3, "E"), Cells(LastLigne, LastColonne)).Address
'seconde façon
MsgBox Sheets("36").Range("E3:P23").Address
'troisième façon
Set Zone = Sheets("36").Range("E3:P23")
MsgBox Zone.Address
End Sub
Tu peux expliquer exactement ce que tu veux faire, stp ?

La colonne E est la colonne 5 donc le code de ton precédent message devrait être
Set Zone=Sheets("36").Range(Cells(3, 5), Cells(LastLigne, LastColonne))
 
Si ta plage est toujours figée à E3:p23 , tu peux écrire ta macro comme cà:
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LastLigne = 23
LastColonne = 16
'mise à jour de la couleur de police selon la colonne D
For i = 3 To LastLigne
     CouleurPolice = Range("D" & i).Font.ColorIndex
     Range("E" & i).Resize(1, LastColonne - 4).Interior.ColorIndex = CouleurPolice
Next i
'mise à jour de la couleur de cellule (gris) selon le contenu de la ligne 2
For j = 5 To LastColonne
     If Cells(2, j).Font.ColorIndex = xlAutomatic Then
         Cells(3, j).Resize(LastLigne - 2, 1).Interior.ColorIndex = 16 'gris
     End If
     'mise à jour en rouge des cellules vides  et police "blanc" en ligne 2
     If Cells(2, j).Font.ColorIndex = 2 Then 'couleur blanc
         For k = 3 To LastLigne
             If Cells(k, j) = "" Then Cells(k, j).Interior.ColorIndex = 3 'couleur Rouge
         Next k
     End If
Next j
    Calculate
End Sub
 
Dernière édition:
- 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

Discussions similaires

Retour