Selectionner un nombre de colonne et lignes à partir d'une cellule

Bonjour,

Je cherche une macro qui permet de selectionner 9 colonnes + 30 lignes à partir de ma cellule A1.
L'idée est que si les colonnes de B à K , ... sont masquées, et les ligne 2 à 30 aussi, la macro selectionne les colonnes et lignes suivantes.

Un peu comme si je voulais faire "Range(Selection, Selection.End(xlToRight)).Select" plusieurs fois.

Est-ce possible ?

Merci de votre aide

Bonjour, sélectionner une plage masquées ou non est une chose mais dans quel but ? la méthode peut-être différente selon ce que vous voulez en faire aprés ?

Bonjour à tous ,

Une interprétation :

On recherche la première colonne non masquée à partir de la colonne B. A partir de cette colonne, on sélectionne 8 colonnes (masquées ou non). Avec la colonne A, on aura sélectionné 9 colonnes. Raisonnement analogue pour les lignes.

Les lignes contigües masquées à partir de la ligne 2 (si elle est masquée) ne sont pas dans la sélection. Les colonnes contigües masquées à partir de la colonne masquée B (si elle est masquée) ne sont pas dans la sélection.

Sub Selection30L9C()
Dim i&, j&, i0&, j0, col&, lig&
   i0 = 2
   Do While Rows(i0).Hidden: i0 = i0 + 1: Loop
   j0 = 2
   Do While Columns(j0).Hidden: j0 = j0 + 1: Loop
   Union(Range("a1"), Cells(i0, 1).Resize(29), Cells(1, j0).Resize(, 8), Cells(i0, j0).Resize(29, 8)).Select
End Sub

Bonjour Xmenpl, mafraise,

Merci à vous deux pour votre aide !

@mafraise, j'ai essayé et adapté votre macro qui fonctionne très bien ! Le seul truc, c'est que j'aimerais que la selection ne se fasse qu'avec les colonnes visibles, ignorer celles masquées. Une idée?

J'essaye de créer une plage qui aura toujours le même nombre de ligne et colonnes car le nom des colonnes vont varier, seront masquées en fonction d'une condition (d'une autre macro), à partir de là, je vais copier/coller en tant qu'image sur une autre feuille.

Merci à vous deux !

Re,

Si j'ai compris correctement, voici une version qui copie la plage de Feuil1 (30 lignes visibles , 9 colonnes visibles) et colle l'image de la plage copiée sur Feuil2 en cellule A1.

Le code est dans module1 :

Sub Selection30L9C()
Dim i&, j&, ni&, nj&, shp As Shape
   With Worksheets("Feuil1")
      For i = 1 To .Rows.Count
         If Not .Rows(i).Hidden Then ni = ni + 1
         If ni = 30 Then Exit For
      Next i
      For j = 1 To .Columns.Count
         If Not .Columns(j).Hidden Then nj = nj + 1
         If nj = 9 Then Exit For
      Next j
      .Range(.Range("a1"), .Cells(i, j)).CopyPicture Appearance:=xlScreen, Format:=xlPicture
   End With
   With Worksheets("Feuil2")
      Application.Goto .Range("a1"), True
      For Each shp In .Shapes
         If shp.TopLeftCell.Address(0, 0) = "A1" Then shp.Delete
      Next shp
      .Paste
   End With
End Sub

Hello mafraise,

Fonctionne parfaitement !

Merci beaucoup !!

Rechercher des sujets similaires à "selectionner nombre colonne lignes partir"