XL 2019 sélection ligne avec texte

David62800

XLDnaute Nouveau
bonjour
je cherche a faire une sélection de toute les lignes contenant du texte dans une feuille ou tableau avec mise en forme par couleur
actuellement j utilise ce code qui lui prend toutes les lignes non vides(mais il prend la mise en forme par couleur comme non vide )

Dim NbLigne As Integer
Set Mafeuille = ThisWorkbook.Sheets("test")
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
Mafeuille.Range("A1:M" & NbLigne).Select



merci de votre aide
 

David62800

XLDnaute Nouveau
Voici le fichier pour visu je l adapte à ma feuille ensuite

Dim NbLigne As Integer
Set Mafeuille = ThisWorkbook.Sheets("Dashboard")
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
Mafeuille.Range("A1:M" & NbLigne).Select
 

Pièces jointes

  • test envoie mail.xlsm
    33.6 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Testez avec :
VB:
NbLigne = Mafeuille.Application.CountIf([Tableau15], "><")
Mafeuille.Range("A1:O" & NbLigne + 5).Select

NbLigne est correct (46) , le +5 pour se "recoller" en début de tableau.
Par contre je n'ai pas testé jusqu'au bout.
 

Pièces jointes

  • test envoie mail.xlsm
    32.9 KB · Affichages: 3

David62800

XLDnaute Nouveau
bonjour le fil
non le code fonctionne mais la sélection non
NbLigne = Mafeuille.Application.CountIf([Tableau15], "><")
Mafeuille.Range("A1:O" & NbLigne + 5).Select

il faut que la sélection se fasse par rapport a la colonne A est remplie ou contient du texte sans prendre en compte la mise en forme conditionnel ou formule dans la cellule qui renvoie 0
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Avec un point d'arrêt sur With Selection.Parent.MailEnvelope.Item, voici ce que j'obtiens :
20231003_224412.gif

La zone sélectionnée est bien A1:O51.
Elle s'arrête bien sur la dernière cellule de la colonne A qui est non vide.
Si ce n'est pas ce que vous vouliez, alors précisez. Car pour moi cela correspond à la demande initiale.
 

David62800

XLDnaute Nouveau
voici mon code complet
Sub test5()

Dim oOutlook As Object
Dim Mafeuille As Worksheet
Dim NbLigne As Integer

Set Mafeuille = ThisWorkbook.Sheets("Dashboard")

'on calcule le nombre de ligne a prendre dans la feuille a partir de la colonne A
NbLigne = Mafeuille.Application.CountIf([Tableau153], "><")
'on selectione la plage a copier
Mafeuille.Range("A1:O" & NbLigne + 5).Select

'avec l'objet MailEnvoie on envoie dans le corps du mail
Set oOutlook = CreateObject("Outlook.application")
Dim oMail As Object
Set oMail = oOutlook.createItem(o)
With oMail
Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor
.to = "***********@gmail.com"
.Subject = "Extrait tableau" & ThisWorkbook.Name
Selection.Copy
oObjetWord.Range(0).Paste
.Display
.Send 'envoie du mail

End With

'confirmation d'envoie du mail
MsgBox "Votre mail a été envoyé avec succé.", vbInformation + vbOKOnly, "Confirmation envoie mail"
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
1- Pour le code utilisez la balise </> ( à droite de l'icone GIF ) c'est plus lisible.
2- Ayez la politesse de répondre aux questions. Après tout un contributeur ne veut que vous aider alors faites un effort :
Si ce n'est pas ce que vous vouliez, alors précisez. Car pour moi cela correspond à la demande initiale.
3- "sélection ligne avec texte" est le titre de ce fil.
Je considère que le but est atteint. Si le problème est autre, ouvrez un nouveau fil.
Cdlt.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 241
Membres
103 162
dernier inscrit
fcfg