XL 2013 Redimensionnement d'une plage de cellules

BenHarber

XLDnaute Occasionnel
Bonjour le Forum,

Je bute une fois de plus sur un pb. de code :(

Soit une plage de cellules déclarée comme suit :

Set maPlage = Sheets(“Feuil1”).UsedRange.SpecialCells(xlCellTypeVisible)

J’aimerais ensuite la redimensionner en excluant la première ligne : savez-vous comment faire ? (commande Resize ?)

Merci d’avance pour vos idées et suggestions toujours les bienvenues !

BH
 

sousou

XLDnaute Barbatruc
bonjour
essaie ceci
Ca devrait fonctionner quelques soit le usedrange
Sub deb()
With Sheets(1)
Set maplage = .Range(.Cells(2, .UsedRange.Column), .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count + .UsedRange.Column - 1)).SpecialCells(xlCellTypeVisible)
maplage.Select
End With
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Une autre proposition :

VB:
Sub Macro1()
Dim MaPlage As Range 'déclare la variable
Dim PL() As Range 'déclare la variable PL (PLages)
Dim NZ As Integer 'déclare la variable NZ (Nombre de Zones)
Dim NP As Range 'déclare la variable NP (Nouvelle Plage)

Set MaPlage = Sheets("Feuil1").UsedRange.SpecialCells(xlCellTypeVisible) 'définit la variable MaPlage
NZ = MaPlage.Areas.Count 'définit le nombre de zones NZ de la plage MaPlage
If MaPlage.Areas.Count = 1 Then 'condition : si une seule zone
  'redéfinit la plage MaPlage sans la première ligne
  Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, MaPlage.Columns.Count)
Else 'sinon
  For I = 1 To NZ 'bouble sur toutes les zones
  ReDim Preserve PL(1 To I) 'redimensionne le tableau des plage PL
  Set PL(I) = MaPlage.Areas(I) 'définit la zone PL(I) de la boucle
  Next I 'prochaine zone de la boucle
  'redéfinit la première zone sans la première ligne
  Set PL(1) = PL(1).Offset(1, 0).Resize(PL(1).Rows.Count - 1, PL(1).Columns.Count)
  For I = 1 To NZ 'boucle sur toute les zones
  'définit la nouvelle plage NP par union des zones
  If NP Is Nothing Then Set NP = PL(I) Else Set NP = Application.Union(NP, PL(I))
  Next I 'prichane zone de la boucle
  Set MaPlage = NP 'redéfinit la plage MaPlage
End If 'fin de la condition
MaPlage.Select 'sélectionne la plage MaPlage
End Sub[\code]
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87