IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Sélection des lignes


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juillet 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Sélection des lignes
    Bonjour, je suis un peu perdu je vous partage mon code : Private Sub CommandButton1_Click()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Dim LeMail As Variant
    Dim Ligne As Integer
     
    For Ligne = 12 To 73
     
        Set LeMail = CreateObject("Outlook.Application")
     
     
        With LeMail.CreateItem(olMailItem)
             .Subject = Range("d9") & " - " & Range("h" & Ligne)
             .To = Range("i" & Ligne) & ";" & Range("j" & Ligne) & ";" & Range("k" & Ligne) & ";" & Range("l" & Ligne) & ";" & Range("m" & Ligne) & ";" & Range("n" & Ligne)
             .CC = Range("o" & Ligne) & ";" & Range("p" & Ligne) & ";" & Range("q" & Ligne) & ";" & Range("r" & Ligne)
             .Body = Range("d17")
             .BCC = Range("s" & Ligne) & ";" & Range("t" & Ligne)
             .Attachments.Add ("Z:\300 SUPPORT RESEAU\360 OUTIL COMMUNICATION DELEGATAIRE\MyMail\depot\Indiquer_le_nom_du_fichier.pdf")
             .Attachments.Add ("Z:\300 SUPPORT RESEAU\360 OUTIL COMMUNICATION DELEGATAIRE\MyMail\depot\Indiquer_le_nom_du_fichier.pdf")
             .Display
        End With
     
    Next Ligne
     
    End Sub
    J’aimerai enlever le For Ligne = 12 To 73 pour que sa sélectionne automatiquement.
    C’est à dire je veux ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("I12") .Select
    Range(Selection,End(xldown)).Select

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    juillet 2016
    Messages
    2 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 975
    Points : 5 192
    Points
    5 192
    Par défaut
    Bonjour,

    Si j'ai bien compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DerLig = Range("I" & Rows.Count).End(xlUp).Row
    For i = 12 To DerLig
    Sinon si votre tableau est convertit en tableau structuré, pour détecter la dernière ligne (en mettant le nom de la feuille et celui du tableau structuré)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DerLig = Sheets("Nom de la feuille").ListObjects("nom du tableau").DataBodyRange.Rows.Count
    For i = 12 To DerLig
    Cdlt

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 317
    Points : 53 195
    Points
    53 195
    Billets dans le blog
    128
    Par défaut
    Salut.

    Perso, à vue de nez, je travaillerais avec un tableau structuré. Ça simplifie vachement l'écriture et la maintenance du code. C'est à mon sens un prérequis incontournable en 2021.

    Lorsque l'on travaille avec un tableau structuré, il est contre-indiqué de préciser la feuille sur laquelle il se trouve. Le nom du tableau étant unique dans le classeur, il est préférable de ne pas préciser la feuille parente. Ainsi, en cas de déplacement sur une autre feuille ou de renommage de la feuille lorsque l'on travaille avec Worksheets("..."), le code continue à fonctionner. Si on précise la feuille parente, Bardaf c'est l'embardée

    Pour connaître le nombre de lignes, on n'est pas obligé de passer par le listobject, si l'on connait le nom du tableau: Range("Tableau1").rows.count fait l'affaire.

    Attention que si le tableau est vide:
    • Range("Tableau1").Rows.Count renvoie 1;
    • Worksheets("...").ListObjects("...").Databodyrange.Rows.Count plante car DataBodyRange est Nothing.


    Dès lors, je préfère passer par une fonction perso pour compter le nombre de lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function CountOfRows(TableName As String)
      If Range(TableName).ListObject.DataBodyRange Is Nothing Then
        CountOfRows = 0
      Else
        CountOfRows = Range(TableName).Rows.Count
      End If
    End Function



    Peut-être pourrais-tu préciser ta demande pour que l'on y réponde de façon adéquate et que l'on puisse nettoyer ton code truffé de hardcoding
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Sélection des lignes dans un GridPanel
    Par mixday dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 05/08/2010, 23h41
  2. Sélection des lignes 2 à 2.
    Par LestoK dans le forum Composants
    Réponses: 0
    Dernier message: 22/04/2009, 17h53
  3. Sélection des lignes de feuille Excel avec une listbox
    Par wlofab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/07/2008, 16h35
  4. [VBA-E] Sélection des lignes en utilisant AUJOURDHUI()
    Par gabygaby dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/04/2007, 06h05
  5. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo