Résultat de Findnext dans un tableau

rastafouette

XLDnaute Junior
Bonjour à tous,

J'ai qques soucis/questions avec la fonction findnext.
explication de ce que je veux faire
l'utilisateur toto va sur le 2nd onglet du classeur, mets des "x" en colonne M sur les lignes remplies qui lui conviennent, puis retourne sur le 1er onglet, met un "x" en colonne H sur la ligne voulue, clique sur un bouton mail (déjà créé) et les infos des lignes sélectionnées du 2nd onglet se collent en forme de tableau sur le mail créé.

Ma 1ere quesiton : qd je recherche dans mon 1er onglet colonne H (colonnes A à G remplies), si une ou plusieurs cellules ont été selectionnées (avec un "x" dedans tout simplement pour le moment) et je colorie cette cellule "x". Ca c'est fait, ça marche.
Ce que je voudrais, sur cet onglet, c'est d'abord, avant de colorier, vérifier qu'il n'y a qu'une seule cellule avec un "x" dans cette colonne, et s'il y en a plusieurs, mettre un message et faire sortir.

Ensuite, j'ai trouvé aussi (grace au forum et à toutes vos contributions, d'ailleurs merci) comment ouvrir un mail avec les données de la ligne du "x".

En 2eme question, ce que je voudrais rajouter au mail créé, c'est un tableau avec les données des lignes selectionnées du 2nd onglet (pas toute la ligne, seulement qques cellules) et les metttre dans un tableau sur le mail (entre le blabla d'intro et la signature automatique) ????

J'ai déjà ceci dans le code du bouton de ma feuille onglet2
Code:
Private Sub CB_Mail_Click()

With Range("H:H")
    Dim rrr As Range
    Set rrr = .Find("x", LookIn:=xlValues)
        If Not rrr Is Nothing Then
            firstAddress = rrr.Address
            Do
               rrr.Interior.ColorIndex = 33
               Set rrr = .FindNext(rrr)
            Loop While Not rrr Is Nothing And rrr.Address <> firstAddress
        'Call OuvrirMail(rrr)
    End If
End With
End Sub

et ça dans un module
Code:
Sub OuvrirMail(ByVal TARGET As Range)

    Set OlApp = CreateObject("Outlook.application")
    Set OlItem = OlApp.CreateItem(olMailItem)
    
    ligne = TARGET.Row
    
    Dim strbody As String
    strbody = "<HTML>blablabla<HTML>"

    With OlItem
        .Display
        .To = "xxxxxxx@xxx.com"
        .CC = "xxxxxxx@xxx.com"
        .Subject = Cells(ligne, 1).Value & "-" & Cells(ligne, 2).Value & "-" _
        & Cells(ligne, 3).Value & " " & Cells(ligne, 4).Value & " - " _
        & Cells(ligne, 5).Value
        '.BodyFormat = olFormatHTML
        .htmlBody = strbody & .htmlBody
        '.Display 'Ou .Send
    End With

End Sub

Je suis pas pro du tout en vba, alors je pense que tout ce code peut être simplifié, mais comment ?

Merci en tout cas d'avance d'avoir pris le temps de me lire
En espérant que vous pourrez m'aider.
 

Discussions similaires

Réponses
6
Affichages
268
Réponses
17
Affichages
1 K