Comment sélectionner une plage de données - macro

Résolu
RachelMamin -  
Tony27430 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite écrire une macro qui me permettrai de sélectionner une plage de données qui a la particularité de ne pas être toujours à la même ligne Excel, qui ne contient pas toujours le même nombre de ligne mais qui commence toujours par le même libellé "Count".
Dans la vie sans macro, j'utilise le fameux Shift + double click sur le bas de la 1ère ligne concernée.
Merci d'avance pour votre aide :-)

4 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Un exemple pour selectionner la plage remplie depuis jusqu'à la fin en colonne B :
    Sub selectionner()
    Dim LigneD As Long, ligneF As Long
    LigneD = Columns(2).Find("Count", , , , xlByColumns, xlPrevious).Row
    ligneF = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
    Range("B" & LigneD & ":B" & ligneF).Select
    End Sub
    


    Cdlmnt
    Via
    0
    1. RachelMamin
       
      Merci Via,
      Je ne suis pas expérimentée donc je complète mon énoncé :
      - il y a bien une sélection mais elle ne se fait pas depuis la ligne qui contient le "Count" qui m'intéresse (il y en a plusieurs et je souhaite la deuxième).
      - la sélection s'arrête à la dernière ligne de la feuille alors que je souhaite qu'elle s'arrête à la fin de ma plage de données ("prochaine ligne vide").
      Un fichier joint serait le bienvenu pour illustrer cela mais je ne vois pas comment faire.
      Merci d'avance.
      0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    J'allais te demander un exemple de ton fichier
    Tu le télécharges sur mon-partage.fr par exemple, tu fias créer un lien que tu copies et reviens coller ici
    Dans ton fichier met en couleur la plage que tu désire selectionner par macro

    Dans l'attente
    0
    1. RachelMamin
       
      Merci pour l'info. Voici le lien https://mon-partage.fr/f/rF3umsHf/.
      :-)
      0
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Essaie si cette macro te convient :
    Sub selection()
    Dim LigneD As Long, ligneF As Long
    LigneD = ActiveSheet.Columns(2).Find("Count", , , , xlByColumns, xlNext).Row ' ligne du dernier Count dans la colonne
    ligneF = ActiveSheet.Range("B" & LigneD).End(xlDown).Row 'dernière ligne non vide apèrs la précédente (idem que raccourci Ctrl+flèche bas)
    Range("B" & LigneD & ":B" & ligneF).Select ' pour selectionner la partie de colonne
    'ou pour selectionner la partie du tableau remplacer la ligne précédente par : Range("A" & LigneD & ":AA" & ligneF).Select
    End Sub

    Cdlmnt
    Via
    0
    1. RachelMamin
       
      Bonjour Via,

      Désolée pour le délai de ma réponse mais il n'est pas trop tard pour te dire un grand MERCI pour ta dernière macro, j'ai enfin pu me pencher dessus aujourd'hui et ça fonctionne parfaitement! Youpi!
      :-) Je suis super contente :-)

      Rachel
      0
  4. Tony27430 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour,

    Pour faire suite à la délimitation de tableau,
    J'ai réalisé une macro qui incrémente une valeur à partir de la cellule C5, mais sans limite de fin.
    Je veux que ces données soit maximum jusqu' C17. Quelqu'un a peut-être l'info..
    Voila la base de ma macro.

    Private Sub Worksheet_Change(ByVal Target As Range)
    'Désactive l'évènement
    Application.EnableEvents = False
    'modification dans la cellule C5
    i = 5
    While Cells(i, 3).Value <> ""
    i = i + 1
    Wend
    Cells(i, 3).Value = Range("G11").Value
    'Réactive l'évènement
    Application.EnableEvents = True
    End Sub

    La valeur de "G11" me soit renvoyé jusqu'à la cellule C17, soit maximum 17 Fois.
    Merci des informations de chacun.
    0