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 :

Récupérer les noms des lecteurs sur le PC


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Récupérer les noms des lecteurs sur le PC
    Bonjour à tous,

    J'espère ne pas rouvrir un fil déjà lancé, mais je cherche cette information sur le net depuis un bon moment déjà et je ne trouve que des solutions partielles à mon problème.

    Voilà :
    je dois générer un mail automatique sous VBA en insérant des images des graphiques présents dans mon classeur excel.
    Jusque là tout va bien, le problème est que le lecteur sur lequel est enregistré ce fichier excel est un lecteur partagé et selon le pc sur lequel il est installé, il n'a pas la même lettre.

    Je voudrais pouvoir récupérer le nom des lecteurs, identifier celui qui m'intéresse, prendre la lettre et lancer la suite de mon code en fonction de cette lettre.

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Sub MailAutomatique()
     
    'Objects used in macro
    'Outlook objects
        Dim objApp As Outlook.Application
        Dim objMail As Outlook.MailItem
        Dim strHtml As String
        Dim Lecteur As Object
        Dim nOm As String
     
        Set Lecteur = CreateObject("Scripting.FileSystemObject")
        Set olApp = GetObject("", "Outlook.application")
        Dim olExplorer As Outlook.Explorer
        Set objMail = olApp.CreateItem(olMailItem)
     
     
    'Emails details
        With objMail
            .Display 'Open the Outlook Window
            .Subject = "Indicateurs mensuels de qualité et productivité du CRC " & Format(DateAdd("m", -1, Date), "mmmm") & " " & Year(Date) 'Email's subject
            .To = "ombeline.malone@ingdirect.fr" 'Email's recipient
        End With
     
    'is the drive letter Z or V ?
    If Lecteur.Driveexists("V") Then
        nOm = "V"
    ElseIf Lecteur.Driveexists("Z") Then
        nOm = "Z"
    End If
     
    'Export charts as pictures
        With Feuil20
            .ChartObjects("Graph1").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIAppels.jpg", "JPG"
            .ChartObjects("Graph2").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIEmails.jpg", "JPG"
            .ChartObjects("Graph3").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\DMT.jpg", "JPG"
            .ChartObjects("Graph4").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\FTEProd.jpg", "JPG"
            .ChartObjects("Graph5").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteAppels.jpg", "JPG"
            .ChartObjects("Graph6").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteEmails.jpg", "JPG"
            .ChartObjects("Graph7").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\HomogEval.jpg", "JPG"
            .ChartObjects("Graph8").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\PartCCObj.jpg", "JPG"
        End With
     
    'Emails format
        strHtml = "Bonjour, <BR><BR>"
        strHtml = strHtml & "Veuillez trouver ci-dessous les indicateurs mensuels concernant la qualité et la productivité du CRC pour " & Format(DateAdd("m", -1, Date), "mmmm") & " " & Year(Date) & "." & "<BR>"
        strHtml = strHtml & "Nous restons à votre disposition pour toute information complémentaire."
        strHtml = strHtml & "<BR><BR><BR>"
        strHtml = strHtml & "<b><u><span style="" font-size: 28""><center> INDICATEURS DE PRODUCTIVITE CRC </center></TD></span></u></b>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:KPIAppels.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:KPIEmails.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:DMT.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:FTEProd.jpg'></center>" & "<BR><BR><BR><BR><BR><BR><BR><BR>"
        strHtml = strHtml & "<b><u><span style=""font-size: 28 ""><center> INDICATEURS DE QUALITE CRC </center></span></u></b>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:QualiteAppels.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:QualiteEmails.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:HomogEval.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:PartCCObj.jpg'></center>" & "<BR><BR>"
     
     
     
    'Attach pictures in the email and copy it in the email's body (for each picture)
        With objMail.Attachments
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIAppels.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIEmails.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\DMT.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\FTEProd.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteAppels.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteEmails.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\HomogEval.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\PartCCObj.jpg"
        End With
        objMail.HTMLBody = strHtml
        objMail.BodyFormat = olFormatHTML
     
    End Sub
    les lettres actives pour le moment son V et Z car c'est avec ces deux lettres que je me suis aperçue que les lettres des lecteurs changeaient (Z pour moi et V pour ma chef). J'avais développé cette solution, mais je me suis rendue compte qu'un autre collègue avait la lettre S pour ce lecteur....

    Je ne sais pas si je suis très claire.
    N'hésitez pas à me demander des précisions.
    Je ne suis pas du tout une star du VBA, je tatonne et peut-être que le code ne sera pas considéré comme optimal.

    merci d'avance pour votre aide !

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut moi aussi, même chose!
    Bonjour, tout le monde.
    J'aimerais moi aussi trouver une solution à ce même problème, pour un autre usage: je veux monitorer la synchronisation des fichiers entre deux disques durs qui se baladent entre plusieurs pc, à chaque fois avec une lettre différente, mais toujours avec leurs propres noms. On peut donc les distinguer comme-ça.

    J'avais un code dans une feuille, mais je n'arrive pas à en extraire le nom de l'unité:

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Private Sub ComboBox1_Change()
    On Error Resume Next
    ComboBox2.Clear
    If Cells(5, 1) = "" Then GoTo 10
    Range(Cells(5, 1), Cells(5, 1).End(xlDown)).ClearContents
     
    10:
    X = ComboBox1.Text
    [A4] = "Cartelle presenti nell'Unità:"
    folderspec = "" & X & ":" & "\" & ""
     
    Dim fs, f, f1, fc
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
     
    If Err.Number = 76 Then
    MsgBox "" & folderspec & " Unità vuota"
    Exit Sub
    End If
     
    Set fc = f.SubFolders
    r = 5
    For Each f1 In fc
    ComboBox2.AddItem f1.Name
    Cells(r, 1) = f1.Name
    r = r + 1
     
    Next
    Set fs = Nothing
    Set f = Nothing
    Set f1 = Nothing
    Set fc = Nothing
    Resume
     
    End Sub
     
    Private Sub ComboBox2_Click()
    On Error Resume Next
    If Cells(5, 1) = "" Then GoTo 10
    Range(Cells(5, 1), Cells(5, 1).End(xlDown)).ClearContents
     
    10:
    [A4] = "Sottocartelle Presenti"
    X = ComboBox1.Text
    W = ComboBox2.Text
     
    folderspec = "" & X & ":" & "\" & W & "\"
     
    Dim fs, f, f1, fc
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
     
    Set fc = f.SubFolders
    r = 5
    For Each f1 In fc
     
    Cells(r, 1) = f1.Name
    r = r + 1
     
    Next
    Set fs = Nothing
    Set f = Nothing
    Set f1 = Nothing
    Set fc = Nothing
    Resume
    End Sub
     
    Private Sub Worksheet_Activate()
    Dim fs, d, dc
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
    For Each d In dc
     
    ActiveSheet.OLEObjects("ComboBox1").Object.AddItem d.DriveLetter  'aggiungiamo la lettera del drive "d" nella combo
    Next
    Set fs = Nothing
    Set d = Nothing
    Set dc = Nothing
     
    End Sub
    Si quelqu'un d'autre pouvait nous aider...
    Merci d'avance.

  3. #3
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Points : 1 925
    Points
    1 925
    Billets dans le blog
    5
    Par défaut
    bonsoir à tous.

    La solution c'est de parcourir la collection Drives de l'objet FSO avec une variable et lire la propriété DriveType.

    s'il ya plus d'un lecteur Réseau à trouver rassembler dans un tableau. Sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ReDim rm_List(1 to 1)
     
    For Each ds in Lecteur.Drives
     
    's'il ya plus d'un lecteur Réseau à trouver rassembler dans un tableau.
     
          if ds.DriveType = 3 Then _
              n = n + 1: Redim Preserve rm_List( 1 to n): rm_List(n) = ds.ShareName
     
    'sinon
          nom = ds.ShareName
    Next

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Merci NVCfrm de ton intervention.
    J'ai du mal à comprendre ton code et par conséquent à l'utiliser.
    J'ai voulu l'appliquer comme suit, mais il s'arrête où j'ai mis le commentaire.
    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
    Sub listadrives()
    ActiveSheet.Range("A1").Select
     
    ReDim rm_List(1 To 1)
     
    For Each ds In Lecteur.Drives ' IL S'ARRETE ICI: objet requis, ds reste vide
     
    's'il ya plus d'un lecteur Réseau à trouver rassembler dans un tableau.
     
          If ds.DriveType = 3 Then _
              n = n + 1: ReDim Preserve rm_List(1 To n): rm_List(n) = ds.ShareName
     
    'sinon
          nom = ds.ShareName
          ActiveCell.Value = nom
          ActiveCell.Offset(1, 0).Select
    Next
    End Sub
    En fait, il y a plusieurs choses dans ce code que je ne connais pas; par exemple:
    - ReDim et ReDim Preserve: cela sert à déclarer des variables de type particulier? Des tableaux, peut-être?
    - Comment utiliser ensuite les valeurs du tableau? Mon ActiveCell.Value = nom est approprié uniquement dans le cas d'une variable simple, n'est-ce pas?
    - Où sont passés les EndIf et les Else qu'on met d'habitude à la fin des instructions If ? Ils ne sont pas nécessaires dans cette situation?
    Merci pour tes précisions.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    merci NVCfrm pour ton aide !

    Contrairement à luca.donati, le code ne présente pas d'erreur. Mais s'il récupère le nom complet du lecteur, il n'en récupère pas la lettre.
    J'ai voulu faire quelque chose du style :

    si le nom trouvé existe alors récupère la lettre, mais là ça plante
    Est-ce que tu aurais une solution ?

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    SeB18, pourrais-tu poster ton code?
    C'est pour comprendre comment l'utiliser.
    Merci.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    A priori, pour moi cela fonctionne.
    J'ai pris le parti de vérifier si le lecteur que je cherche est présent dans la liste et si oui, alors j'en récupère la lettre que je réutilise dans les chemins destinations des images.

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    Sub MailAutomatique()
     
    'Objects used in macro
    'Outlook objects
        Dim objApp As Outlook.Application
        Dim objMail As Outlook.MailItem
        Dim strHtml As String
        Dim olExplorer As Outlook.Explorer
     
    'Initialize outlook objects
        Set olApp = GetObject("", "Outlook.application")
        Set objMail = olApp.CreateItem(olMailItem)
     
    'File System Objects
        Dim oFSO As Scripting.FileSystemObject
        Dim DriVe As Scripting.DriVe
        Dim nOm As String
     
    'Initialize FSO Objects
        Set oFSO = New Scripting.FileSystemObject
     
    '(1)
    'Looking for the letter of the "Partage Coordination Qualité CRC" Drive which is different for every user
    'If this drive exists in the computer, we look for its letter
    'For each drive in the system, we look for the one which named "\\idf1pntdpt01\Partage Coordination Qualité CRC$"
    'When we find it, the value of nOm is the letter of this drive
        For Each DriVe In oFSO.Drives
            If DriVe.ShareName = "\\idf1pntdpt01\Partage coordination qualité crc$" Or DriVe.ShareName = "\\idf1pntdpt01\Partage Coordination Qualité CRC$" _
            Or DriVe.ShareName = "\\idf1pntdpt01\Partage oordination Qualité CRC$" Then
                nOm = DriVe.DriveLetter
            End If
        Next DriVe
     
    '(2)
    'Emails details
    'We define the email we want to send : subject, recipients
        With objMail
            .Display 'Open the Outlook Window
            .Subject = "Indicateurs mensuels de qualité et productivité du CRC " & Format(DateAdd("m", -1, Date), "mmmm") & " " & Year(Date) 'Email's subject
            .To = "ombeline.malone@ingdirect.fr" 'Email's recipient
        End With
     
    '(3)
    'We use the letter of the drive we get earlier (1) to define where we save the pictures of charts
    'Export charts as pictures
        With Feuil20
            .ChartObjects("Graph1").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIAppels.jpg", "JPG"
            .ChartObjects("Graph2").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIEmails.jpg", "JPG"
            .ChartObjects("Graph3").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\DMT.jpg", "JPG"
            .ChartObjects("Graph4").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\FTEProd.jpg", "JPG"
            .ChartObjects("Graph5").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteAppels.jpg", "JPG"
            .ChartObjects("Graph6").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteEmails.jpg", "JPG"
            .ChartObjects("Graph7").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\HomogEval.jpg", "JPG"
            .ChartObjects("Graph8").Chart.Export nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\PartCCObj.jpg", "JPG"
        End With
     
    '(4)
    'We define the body of the email we want to send : bold, italic, undelined, font size, etc...
    'We use pictures we saved earlier (3)
    'Emails format
        strHtml = "Bonjour, <BR><BR>"
        strHtml = strHtml & "Veuillez trouver ci-dessous les indicateurs mensuels concernant la qualité et la productivité du CRC pour " & Format(DateAdd("m", -1, Date), "mmmm") & " " & Year(Date) & "." & "<BR>"
        strHtml = strHtml & "Nous restons à votre disposition pour toute information complémentaire."
        strHtml = strHtml & "<BR><BR><BR>"
        strHtml = strHtml & "<b><u><span style="" font-size: 28""><center> INDICATEURS DE PRODUCTIVITE CRC </center></TD></span></u></b>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:KPIAppels.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:KPIEmails.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:DMT.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:FTEProd.jpg'></center>" & "<BR><BR><BR><BR><BR><BR><BR><BR>"
        strHtml = strHtml & "<b><u><span style=""font-size: 28 ""><center> INDICATEURS DE QUALITE CRC </center></span></u></b>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:QualiteAppels.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:QualiteEmails.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:HomogEval.jpg'></center>" & "<BR><BR>"
        strHtml = strHtml & "<center><img src='cid:PartCCObj.jpg'></center>" & "<BR><BR>"
     
    '(5)
    'Attach pictures in the email and copy it in the email's body (for each picture)
    'To put pictures in the email's body, we need to attach them
        With objMail.Attachments
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIAppels.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\KPIEmails.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\DMT.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\FTEProd.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteAppels.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\QualiteEmails.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\HomogEval.jpg"
            .Add nOm & ":\WFM\6. NEW REPORTS\MENSUEL\QUALIPROD CRC\QUALIPROD 2013\img qualiprod\PartCCObj.jpg"
        End With
     
    '(6)
    'We define the email as HTLM format
    'We use the format we created (4)
        objMail.HTMLBody = strHtml
        objMail.BodyFormat = olFormatHTML
     
    End Sub
    Merci pour vos réponses et votre temps.

  8. #8
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Points : 1 925
    Points
    1 925
    Billets dans le blog
    5
    Par défaut
    Bonsoir

    En fait, il y a plusieurs choses dans ce code que je ne connais pas; par exemple:
    - ReDim et ReDim Preserve: cela sert à déclarer des variables de type particulier? Des tableaux, peut-être?
    - Comment utiliser ensuite les valeurs du tableau? Mon ActiveCell.Value = nom est approprié uniquement dans le cas d'une variable simple, n'est-ce pas?
    - Où sont passés les EndIf et les Else qu'on met d'habitude à la fin des instructions If ? Ils ne sont pas nécessaires dans cette situation?
    Merci pour tes précisions.
    Ne serait-il pas préférable que tu commences par apprendre les rudiments de base en VBA? Il ya pas mal de tutoriels VBA sur Developpez par exemple.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    SeB18, merci pour ton code. Effectivement, tu as au début des déclarations d'objets qui doivent certainement inclure ce qui manque dans le miens. Mais c'est normal: nous avons des finalités différentes.
    En tout cas, j'ai joué sur plusieurs tables (j'espère de ne pas froisser les sensibilités, parfois c'est mal vu) et dans un autre forum j'ai obtenu une aide qui m'a permis d'avoir la lettre et le nom de l'unité de lecture, l'un à la suite de l'autre. Attention, il met cette liste en début de colonne A, en effaçant son éventuel contenu précédent.
    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
    Sub ListDrives()
    Dim rm_List(), Lecteur, ds As Object, n As Byte, i As Byte
     
    Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
     
    Set Lecteur = CreateObject("Scripting.FileSystemObject")
    ReDim rm_List(1 To Lecteur.drives.Count, 2)
     
    On Error Resume Next
        For Each ds In Lecteur.drives
        n = n + 1: rm_List(n, 1) = ds.Path: rm_List(n, 2) = ds.VolumeName
        Next
    On Error GoTo 0
     
        For i = 1 To UBound(rm_List)
        Cells(i, 1).Value = rm_List(i, 1) & " " & rm_List(i, 2)
        Next
     
    End Sub
    @NVCfrm, tu n'as pas tort... Mais chacun a sa façon préférée d'apprendre et moi personnellement j'apprends beaucoup plus vite et mieux en "alternance"...

  10. #10
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Points : 1 925
    Points
    1 925
    Billets dans le blog
    5
    Par défaut
    bonjour,
    @SeB18
    je n'avais pas remarqué ta question.
    si le nom trouvé existe alors récupère la lettre, mais là ça plante
    Est-ce que tu aurais une solution ?
    Je penses que tu as du par la suite trouver une réponse.
    Le fait que ça plante peut être provoqué par la tentative d'accéder à ShareName sur un lecteur qui n'est pas un lecteur reseau ou lire le nom d'un lecteur cd vide par exemple.
    d'ou le test sur le type qui te permet de savoir si c'est un lecteur réseau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ds.DriveType = 3 Then _
    @luca.donati
    j'apprends beaucoup plus vite et mieux en "alternance"...
    ce ne sera pas facile. Ce serait toujours déconcertant de buter sur des bases élémentaires.
    Mais enfin comme tu l'as dit, chacun ses méthodes. courage.

Discussions similaires

  1. [C++] Récupérer les noms des fenêtres.
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 8
    Dernier message: 21/06/2006, 18h47
  2. [PostGreSQL] Récupérer les noms des colonnes
    Par Olivier14 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/02/2006, 19h51
  3. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 12/12/2005, 00h19
  4. Réponses: 2
    Dernier message: 03/02/2005, 14h21
  5. Réponses: 2
    Dernier message: 20/08/2004, 18h10

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