Ou mettre les macro VBA ?

brunoooooo Messages postés 11 Statut Membre -  
brunoooooo Messages postés 11 Statut Membre -
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

  1. blux Messages postés 5035 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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...
    0
    1. brunoooooo Messages postés 11 Statut Membre
       
      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
      0