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

Macros et VBA Excel Discussion :

Lire des lignes suivant un filtre spécifique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    Bonjour à tous,

    J'ai un petit problème de connaissance. J'ai ma feuille excel, on peut lui appliquer un filtre qui va donc modifier ma page.

    Exemple du tableau :

    n°ligne : Nom    : imputations : mail :
    23       :toto     : 0              : toto@toto.fr
    42       : lala     : 0              : lala@lala.fr
    58       : robin   : 0              : robin@robin.fr
    Comment je fais en vba pour spécifier que la lecture commence ligne 23 puis 42 puis 58 et non 23,24,25 etc...

    Mon script actuel :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub envoimail()
    '
    'Module d'envoi de mail
    '
    'Declaration de mes variables
    Dim imputations As Integer
    Dim joursouvres As Integer
    Dim adressemail As String
    Dim nb_passage As Integer
    Dim nb_lignes_total As Integer
     
    'On compte le nombre de ligne dans notre tableau
    nb_lignes_total = Cells(5, 7)
     
     
    'On crée notre boucle
    For nb_passage = 1 To nb_lignes_total
        'Sélection de la cellule de la ligne et de la colonne
        joursouvres = Cells(4, 3)
        imputations = Cells(23, 3)
        adressemail = Cells(6, 7)
     
        'On compare l'imputation de la ressource aux jours ouvrés renseignés
        If imputations <> joursouvres Then
            'On envoi les mails
            'Dim OutlookApp As New Outlook.Application
            'Dim NewMail    As Outlook.MailItem
            'Set NewMail = OutlookApp.CreateItem(olMailItem)
            'NewMail.Recipients.Add (adressemail)
            'NewMail.Subject = "Rempli tes heures"
            'NewMail.Send
            MsgBox adressemail
     
        Else
            'On passe à la ligne suivante sans rien faire.
            MsgBox "La condition est valide !"
     
        End If
    Next
     
    End Sub
    Merci de votre aide !

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub envoimail()
    '
    'Module d'envoi de mail
    '
    'Declaration de mes variables
    Dim imputations As Integer
    Dim joursouvres As Integer
    Dim adressemail As String
    'Dim nb_passage As Integer
    'Dim nb_lignes_total As Integer
    
    'On compte le nombre de ligne dans notre tableau
    'nb_lignes_total = Cells(5, 7)
    
    
    'On crée notre boucle
    'For nb_passage = 1 To nb_lignes_total
    'Sélection de la cellule de la ligne et de la colonne
    joursouvres = Cells(4, 3)
    imputations = Cells(23, 3)
    adressemail = Cells(6, 7)
        
    If Range("A:A").SpecialCells(xlCellTypeVisible).Areas(1).Count > 7 Then
            [A2].Select
    Else
         Range("A:A").SpecialCells(xlCellTypeVisible).Areas(2).Item(1).Select
    End If
        
    For Each c In Range("A7", [A65000].End(xlUp)).SpecialCells(xlCellTypeVisible)
             MsgBox c.Value & " " & c.Address
    Next c
        
        'On compare l'imputation de la ressource aux jours ouvrés renseignés
    If imputations <> joursouvres Then
            'On envoi les mails
            'Dim OutlookApp As New Outlook.Application
            'Dim NewMail    As Outlook.MailItem
            'Set NewMail = OutlookApp.CreateItem(olMailItem)
            'NewMail.Recipients.Add (adressemail)
            'NewMail.Subject = "Rempli tes heures"
            'NewMail.Send
            MsgBox adressemail
        
    Else
            'On passe à la ligne suivante sans rien faire.
            MsgBox "La condition est valide !"
        
    End If
    'Next
    
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une solution parmi d'autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ReadRangeVisibleOnly()
     Dim row As Range, rng As Range
     With ThisWorkbook.Worksheets("db")
      Set rng = .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
     End With
     For Each row In rng.Rows
      Debug.Print row.Cells(1).Value
     Next
    End Sub
    La constante 1 représente le n° de colonne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cacher des lignes suivant plusieurs choix
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/03/2011, 10h27
  2. [XL-2003] Masquer ou afficher des lignes suivant clic sur bouton voulu
    Par stephj dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2011, 09h41
  3. [XL-2007] retour des numéros des lignes visibles avec filtre
    Par FanClub51 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/09/2010, 17h00
  4. Comment sélectionner et copier des lignes après un filtre
    Par gaelle777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/04/2008, 09h27
  5. Comment lire des lignes avec un BinaryReader ?
    Par olibara dans le forum C#
    Réponses: 7
    Dernier message: 07/04/2008, 13h57

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