Vba - Import de feuilles de calcul

Rédigé par Xpress Aucun commentaire
Classé dans : Vba Mots clés : Vba, Import, Feuille

'Définition du fichier
directory = "U:dossier"
fileName = Dir(directory & "*.xl??")


'On récupère toutes les worksheets du fichier excel ciblé 
Do While fileName <> ""
    Workbooks.Open (directory & fileName)
    For Each sheet In Workbooks(fileName).Worksheets
        total = Workbooks("fichier.xlsm").Worksheets.Count
        Workbooks(fileName).Worksheets(sheet.Name).Copy _
        after:=Workbooks("fichier.xlsm").Worksheets(total)
    Next sheet
Workbooks(fileName).Close
fileName = Dir()
Loop


Puis en fonction de ce que l'on souhaite, on peut jouer avec une feuille sur son indice, exemple pour la dernière : 

'On récupère le numéro du dernier worksheet arrivé.
Dim LastSheetName
LastSheetName = Sheets(Sheets.Count).Name

					

Vba - Gestion de colonne et cellule

Rédigé par Xpress Aucun commentaire
Classé dans : Vba Mots clés : Vba, Colonne, Cellule

Exemple de boucle For : 
'Pour chaque cellule dans le classeur "Liste" dans la colone C
For Each cell In Sheets("Liste").Range("C:C")
      
'Si la cellule n'est pas vide et est différente du menu "Menu"
      If IsEmpty(cell.Value) = False And cell.Value <> "Menu" Then
      
      'on récupère le contenu de la cellule 
      Contenu =  cell.Value
      End If
Next

--------------------------------

Vba - Execution de code sous Outlook

Rédigé par Xpress Aucun commentaire
Classé dans : Vba Mots clés : Outlook, VBA, pièces-jointes, règle
1 - On édite le registre (admin)
Validé sous Outlook 2016 jusque 365 :
HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0OutlookSecurity
DWORD: EnableUnsafeClientMailRules
Value: 1
2 - Puis le code :
Ouvrir outlook puis ALT + F11 (Ouvre l'éditeur vba)
=> Insertion, module, et coller mon exemple
Cet exemple permet l'enregistrement des pièces jointes dans le dossier de votre choix :
Option Explicit

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:UsersDesktopvotredossier"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
3 - Enfin exécuter la règle sous outlook :
= > fichier , règles et alertes ... puis sous "action à effectuer", choisir "run a script"
Exemple si l'on ne souhaite que les pdf's :
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "votre emplacement dossier"
For Each oAttachment In MItem.Attachments

'Seulement si pdf
If Right(oAttachment.FileName, 3) = "pdf" Then
MsgBox (oAttachment)
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
End If
Next
End Sub
Enjoy
Fil RSS des articles de cette catégorie