Code VBA selction de cellules après un filtre

Bonjour je souhaite trouver un code me permettant de selectionner des cellules après un filtre.

Contexte: je suis sur un envoi automatique de mail.

Je filtre sur la colonne P via un bouton pour masquer les personnes non concernées par cet email.

Pour les destinataires "Item.To", je souhaite selectionner les adresses mail située en colonne K, après avoir effectué mon filtre qui masque les personnes non concernées par cet email.

Sachant que ma selection d'adresse commence en dessous de la ligne 7 et se termine par l'équivalent sur excel d'un fin fleche bas.

Pouvez-vous m'aider?

Bonjour et bienvenu(e)

Ton fichier serait utile

Le code pourrait ressembler à celui-ci

Sub test()
Dim Cel As Range
Dim Nblg As Long

  Nblg = Range("A" & Rows.Count).End(xlUp).Row
  Range("A7:P" & Nblg).AutoFilter field:=16, Criteria1:="ok"
  If Application.Subtotal(103, Columns("K")) > 1 Then
    For Each Cel In Range("K8:K" & Nblg).SpecialCells(xlCellTypeVisible)
      MsgBox "Adresse mail " & Cel
    Next Cel
  Else
    MsgBox "Aucune adresse mail"
  End If
  ActiveSheet.AutoFilterMode = False
End Sub

Re-Bonjour,

Effectivement avec le fichier ça sera plus simple à expliquer

Le premier bouton "anomalie photo" me permet de filter sur la colonne P (Je souhaite garder les lignes ou il y a des cellules vide dans cette colonne). Le code fonctionne.

Le bouton "envoyer mail anomalie photo" (module 3) me sert à faire un envoi automatique de mail.

Je bloque sur ces deux items.

Pour Item.To = je souhaite qu'il me selectionne les logins de la colonne J après le filtre du premier bouton. Début de la selection = Après la ligne 7 - fin flèche bas

Pour Item.CC = Même principe, sauf que je souhaite qu'il me selectionne les logins de la colonne K et L . Début de la selection = Après la ligne 7 - fin flèche bas

Outlook reconnait ensuite les logins et les transforme en adresse e-mail

Merci pour votre aide

82code-test.xlsm (37.08 Ko)

Bonjour

Suis désolé mais je ne crois pas si je vais pouvoir t'aider

Je ne connais pas du tout ces instruction, quand je lance le programme il se plante sur ActiveWorkbook.EnvelopeVisible = True

Donc je ne sais pas ce que tu dois marquer pour .Item.To et Item.CC, est-ce que dois faire une boucle et à chaque fois marquer la cellule de la colonne J, et les cellules des colonnes K et L

Exemple

Private Sub CommandButton3_Click()

'Déclaration des variables

Dim Recap As String
  Recap = "Recap Octobre"

Dim sujet As String
  sujet = "Envoi photo " & ThisWorkbook.Sheets(Recap).Cells(1, 13).Value

Dim msg As String
  msg = "Bonjour," & vbCrLf & vbCrLf
  msg = msg & "WWWWWWWWWWWWWWWWWWWWWWW." & vbCrLf & vbCrLf
  msg = msg & "WWWWWWWWWWWWWWWWWWWWWWWWW." & vbCrLf & vbCrLf
  msg = msg & "Pour rappel, cette étape est primordiale." & vbCrLf & vbCrLf
  msg = msg & "Cordialement," & vbCrLf & "WWWWW" & vbCrLf & vbCrLf

  ' Selection des codes clients.
  ActiveWorkbook.EnvelopeVisible = True
Dim Cel As Range
  For Each Cel In Range("J8:J" & Range("J" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    'Paramètre d'envoi
    With ActiveSheet.MailEnvelope
      .Introduction = msg
      .Item.To = Cel                                    ' Colonne J
      .Item.CC = Cel.Offset(0, 1) & Cel.Offset(0, 2)    ' Colonnes K et L
      .Item.Subject = sujet
      .Item.Send
    End With
  Next Cel
  MsgBox "Mails envoyés"

End Sub

Ou alors envoyer tout d'un seul coup

Exemple

Private Sub CommandButton3_Click()

'Déclaration des variables

Dim Recap As String
  Recap = "Recap Octobre"

Dim sujet As String
  sujet = "Envoi photo " & ThisWorkbook.Sheets(Recap).Cells(1, 13).Value

Dim msg As String
  msg = "Bonjour," & vbCrLf & vbCrLf
  msg = msg & "WWWWWWWWWWWWWWWWWWWWWWW." & vbCrLf & vbCrLf
  msg = msg & "WWWWWWWWWWWWWWWWWWWWWWWWW." & vbCrLf & vbCrLf
  msg = msg & "Pour rappel, cette étape est primordiale." & vbCrLf & vbCrLf
  msg = msg & "Cordialement," & vbCrLf & "WWWWW" & vbCrLf & vbCrLf

  ' Selection des codes clients.
  'ActiveSheet.Range("B7:F7").Select
  'Range(Selection, Selection.End(xlDown)).Select

  'Paramètre d'envoi
  ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope

    .Introduction = msg
    .Item.To = Range(Range("J8:J" & Range("J" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Address)
    .Item.CC = Range(Range("K8:L" & Range("K" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Address)
'    .Item.To = Range("j8")
'    .Item.CC = Range("k8")
    .Item.Subject = sujet
    .Item.Send
  End With

  MsgBox "Mails envoyés"

End Sub

Mais je ne saurais dire

Si pas ça je te conseille de fermer ce post et d'en ouvrir un autre

Rechercher des sujets similaires à "code vba selction filtre"