Ou mettre les macro VBA ?

Bonjour,

j'ai fais une petite macro, bien sympa, qui fait :

a partir d un formulaire excel, genere un mail outlook en attachant le fichier excel apres enregistrement, va generer à partir d'excel une confirmation du formulaire sur word, l enregistre et envoie par mail,

Ma problématique :

ce formulaire doit etre utiliser par de nombreux utilisateurs, j ai mis la macro sur "this workbook",
selon le besoin de la macro, j ai du ouvrir plusieurs reference, bibilotheques entre autres ce qui export, import , application outlook, word ...

j'ai fais des tests, sur d autres ordi, ca marche bien sur les autres collegues de travail,

Cependant sur les ordi portables ...non,

Que dois je verifier ? sachant que je m y connais pas des masses en VB ? comment m assurer que sur "N" autres postes, ca marchera ?

car sur les autres postes, nottament les ordi portables, on dirait qu il ya un pb de reference, de bibilotheques ...

que faire ?

Merci de votre aide,
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    une macro peut être mise dans le classeur courant ou dans le classeur commun à excel (perso.xls, qui est un classeur caché).

    Pour ce qui est de la résolution des références, pas de miracle à attendre du côté de la macro, seule l'installation correcte des différents composants auxquels tu accèdes (outlook, word...) garantit le fonctionnement...
    1. ok, donc si je veux que la macro soit utiliser par tous utilisateurs, sur postes differents ... je laisse la macro dans "this workbook" ?

      Par contre, la macro marche tres bien sur la pluspart des postes ou j ai tester sauf sur certains ordi portable

      sinon voila la macro, c pas tres propre mais ca marche ,

      Sub ValidationSaisie()

      Range("f10").Select

      If ActiveCell = "" Or ActiveCell < 4 Then

      ActiveWorkbook.Save

      'Range("a42 ").Select

      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

      MsgBox "- Vérifier Formulaire" & vbCrLf & "- Récupérer impression" & vbCrLf & "- Envoyer mail", vbInformation, "CM CIC Marchés"

      ' & vbCrlf & ou & Chr(13) & ou & Chr(10)& = permet de passer à la ligne
      'Range("'Cap&Floor'!C3").Select

      Dim outlap2 As New Outlook.Application
      Dim outmail2 As mailitem

      Set outlap2 = New Outlook.Application
      Set outmail2 = outlap2.createitem(olMailItem)

      With outmail2

      .To = Range("'listes'!C3").Value
      .CC = Range("'listes'!C4").Value

      .Subject = Range("'listes'!C5").Value

      '.Body = Range("'listes'!C6").Value

      .Body = vbCrLf & vbCrLf & "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouvez ci joint le formulaire descriptif du deal, " & vbCrLf & "cordialement,"

      .ReadReceiptRequested = True

      .Attachments.Add ActiveWorkbook.FullName

      '.Send
      .Display

      End With

      'test ========== de la copie word et imprim pre conf'

      Sheets("listes").Visible = True

      Sheets("confirm").Visible = True

      Sheets("confirm").Select

      Range("a1:h83").Copy

      'Sheets("collar").Select

      Set WW = CreateObject("word.application")
      WW.Visible = True
      WW.documents.Add
      '''' mise en page word

      WW.Selection.Paste Special
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

      Application.CutCopyMode = False

      'i = InputBox("nom du fichier ???")
      ''''''''''''WW.ActiveDocument.SaveAs "C:\Preconfirmation.doc"
      'WW.ActiveDocument.SaveAs "C:\Preconfirmation.doc"
      'With Application
      'MonUserActif = UserName
      'End With

      'WW.Tables(1).AutoFitBehavior wdAutoFitWindow

      ' Selection.PageSetup.LeftMargin = 2

      '.LeftMargin = Application.InchesToPoints

      Dim hhh As String
      Dim nomfich As String

      hhh = Now
      nomfich = "\preconf " & hhh & ".doc"
      nomfich = Replace(nomfich, "/", "_") ', Replace(nomfich, ":", "_")
      nomfich = Replace(nomfich, ":", "_")
      'MsgBox " mon nom user is : " & Mondoss

      '''''''''bonnne ==== WW.ActiveDocument.SaveAs Path & "\preconf.doc"
      WW.ActiveDocument.SaveAs Path & nomfich

      'Range("a42 ").Select

      'WW.objectSelect

      'ActiveWorkbook.Close

      'Fin test de la copie word et imprim pre conf'

      'Documents.SaveAs ("C:\Documents and Settings\USER\PreconfCli")

      'WW.Documents.Add App.Path & "\Preconf.doc"
      'With outmail2

      '.Attachments.Add WW

      'End With

      '''''''''''test mail 2

      Dim myattachments As Variant

      Dim outlap3 As New Outlook.Application
      Dim outmail3 As mailitem

      Set outlap3 = New Outlook.Application
      Set outmail3 = outlap3.createitem(olMailItem)

      With outmail3

      .To = "xxx"
      '.CC =

      .Subject = nomfich

      '.Body = Range("'listes'!C6").Value

      .Body = vbCrLf & vbCrLf & "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouvez ci joint la génération automatique de préconfirmation, " & vbCrLf & "cordialement,"

      .ReadReceiptRequested = True

      '.WW.Attachments.Add nomfich

      '.Attachments.Add ActiveWorkbook.FullName

      .Attachments.Add Path & "\" & nomfich

      '.Send
      .Display

      End With

      '''''''''''''''''''''''''''''' fin de test
      Sheets("listes").Visible = False

      Sheets("confirm").Visible = False

      Sheets("Cap&Floor").Select

      Range("e7").Select

      Else

      MsgBox "VALIDATION INCOMPLETE",vbExclamation, "xxxMarchés"
      End If

      'Set XL = Excel.Application
      'XL.Visible = True

      End Sub