selection plage active par macro

vatounet

XLDnaute Nouveau
Salut,

J'ai repiqué sur le net (excelabo) la macro suivante, qui me selectionne des lignes en fonction de la valeur de la premiere colonne d'un tableau :


Sub JeSelectionne()
i = 1
NombreLignes = 20
While i < NombreLignes + 1
If Cells(i, 1) = 2 Then
MesLignes = MesLignes & i & ':' & i & ','
End If
i = i + 1
Wend

MesLignes = Left(MesLignes, Len(MesLignes) - 1)

ActiveSheet.Range(MesLignes).Select

End Sub


Elle marche, mais me selectionne toute la (ou les) ligne(s) et non pas juste la partie concernant mon tableau. J'ai essayé des trucs du genre un peu dans tous les sens, mais sans succés:

activesheet.usedrange (MesLignes).select

ou

EntireRow, EntireColumn, CurrentRegion ...

Grrrrrrrr

D'avance merci pour les astuces,

Fred
 

myDearFriend!

XLDnaute Barbatruc
Bonjour Fred,

Tu peux peut-être essayer comme ça :
Sub JeSelectionne()
Dim MesLignes As String
Dim
i As Byte, NombreLignes As Byte
      i = 1
      NombreLignes = 20
      While i <= NombreLignes
            If Cells(i, 1) = 2 Then
                  MesLignes = MesLignes & i & ':' & i & ','
            End If
            i = i + 1
      Wend
      MesLignes = Left(MesLignes, Len(MesLignes) - 1)
     
      With ActiveSheet
            Application.Intersect(.Range(MesLignes), .UsedRange).Select
      End With

End Sub

Cordialement,
 

ChTi160

XLDnaute Barbatruc
Salut vatounet

peux tu donner les limites de ton tableau

sinon un exemple
Sub JeSelectionne()
i = 1
NombreLignes = 20
While i < NombreLignes + 1
If Cells(i, 1) = 2 Then
MesLignes = MesLignes & 'A' & i & ':' & 'F' & i & ','
End If
i = i + 1
Wend

MesLignes = Left(MesLignes, Len(MesLignes) - 1)

ActiveSheet.Range(MesLignes).Select

End Sub
si le tableau à pour limites les colonnes A et F
 
V

vatounet

Guest
Salut,

Merci Didier et merci Jean-marie

J'ai donc essayé la solution :

With ActiveSheet
Application.Intersect(.Range(MesLignes), .UsedRange).Select
End With

Qui marche parfaitement et j'ai essayé la solution :

MesLignes = MesLignes & 'colonneX' & i & ':' & 'colonneY' & i & ','

qui marche aussi très bien.

Donc merci à vous deux

A+

Fred
 

jipi06

XLDnaute Junior
Re : selection plage active par macro

Bonsoir

je reprends ce fil de 2005....car en utilisant la macro en question dans une situation différente ça plante...
J'explique
DAns cette macro qui permet la sélection de lignes en fonction de la valeur de la premiere colonne d'un tableau, la variable NombreLignes (en orange) ici = 20 peut à priori être n ...(j'ai une feuille qui comporte 40000 lignes dont certaines valeurs de la première colonne sont répétées plus de 100 fois, or quand le nb de lignes sélectionnée est supérieur à 32 ça bloque sur le select...

Excel bloque t'il le nb de lignes...

Merci de votre aide ... et si ChTi160; myDearFriend! ou Vatounet sont là ils se rappeleront peut être de ce fil

A+
Jipi06

Sub JeSelectionne()
i = 1
NombreLignes = 20
While i < NombreLignes + 1
If Cells(i, 1) = 2 Then
MesLignes = MesLignes & i & ':' & i & ','
End If
i = i + 1
Wend
MesLignes = Left(MesLignes, Len(MesLignes) - 1)
ActiveSheet.Range(MesLignes).Select
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 792
Messages
2 092 143
Membres
105 235
dernier inscrit
loisipubm