Identification d'un ensemble de document dans une vue

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Identification d'un ensemble de document dans une vue

Messagepar DomNotes » 26 Mai 2011 à 13:07

Bonjour,

J'ai un fichier Excel qui contient une liste de personne (600) avec leurs nouveau statut (le statut est le même pour toute la liste).

Et j'ai une vue qui contient tous le personnel de la société . Pour éviter de chercher le nom des personnes puis les sélectionnés et affecter le nouveau statut. J'aimerai savoir si vous avez une idée pour automatiser cette opération.

Merci
Avatar de l’utilisateur
DomNotes
Posteur néophyte
Posteur néophyte
 
Message(s) : 74
Inscrit(e) le : 22 Déc 2004 à 11:08

Messagepar fripouille76 » 26 Mai 2011 à 13:12

Je sais pas si j'ai bien compris ta problématique ..mais je pense qu'avec un petit agent en lotusScript tu devrais t'en sortir

- lecture du fichier Excel
- tu boucles sur tes documents avec une clé commun entre une de tes colonnes excel et un champ de ton document
- alimentation du champ statut correspondant
- sauvegarde de ton doc.

et cela devrait faire l'affaire.


Après si c'est le même statut pour tous le monde , tu peux peut etre passer par un agent en formule du genre

Field Statut := "New Statut"

tu sélectionnes tout des documents depuis ta vue et tu exécute l'agent.
fripouille76
Maître-posteur
Maître-posteur
 
Message(s) : 430
Inscrit(e) le : 24 Juil 2006 à 11:19

Messagepar gouff » 26 Mai 2011 à 13:20

Avec cette classe :

Code : Tout sélectionner
'//====================================================================
'// Ensemble de classes pour la gestion des fichiers sous Excel
'//  - Exportation
'//  - Importation
'//====================================================================


Public Class ExcelSession
   Private XLApp As Variant
   Private  XLWorkBook As Variant
   Private ActiveWorkBook As Variant
   Private Sheet As Variant
   Private Cells As Variant       
   Private Sheets As Variant
   Private Columns As Variant
   Private Rows As Variant
   Private Workbooks As Variant
   Private Application As Variant
   Private Worksheets As Variant
   
   Property Get GetXLApp As Variant
      Set GetXLApp=XLApp
   End Property
   
   Property Get GetXLWorkBook As Variant
      Set GetXLWorkBook=XLWorkBook
   End Property
   
   Property Get GetActiveWorkBook As Variant
      Set GetActiveWorkBook=ActiveWorkBook
   End Property
   
   Property Get GetSheet As Variant
      Set GetSheet=Sheet
   End Property
   
   Property Get GetCells As Variant
      Set GetCells=Cellule
   End Property
   
   Property Set visible As Integer
      XLApp.Visible = visible
   End Property
   
   Property Set DisplayAlerts As Integer
      XLApp.DisplayAlerts = DisplayAlerts             
   End Property           
   
   Property Set StatusBar As String
      XLApp.StatusBar = StatusBar
   End Property
   
        '//--- Constructeur
   Sub new
      Set XLApp = CreateObject("Excel.Application")
      If XLApp Is Nothing Then
         Error 9999, "Impossible d'initier la session Excel"
      End If         
   End Sub
   
   
   
        '//--- Initialisation des objets
   Private Sub Init               
      Set ActiveWorkBook=XLApp.ActiveWorkBook     
      If ActiveWorkBook Is Nothing Then
         Error 9999, "Impossible d'initier le classeur actif"   
      End If
      Set Sheet=ActiveWorkBook.ActiveSheet       
      'Set Sheet=ActiveWorkBook.Sheets("Signalisations.xls")
      If Sheet Is Nothing Then
         Error 9999, "Impossible d'initier la feuille active"   
      End If
      Call OtherInit
   End Sub
   
   Public Sub opensheet (nomfeuille As String)
      Set ActiveWorkBook=XLApp.ActiveWorkBook     
      If ActiveWorkBook Is Nothing Then
         Error 9999, "Impossible d'initier le classeur actif"   
      End If
      
      Set Sheet=ActiveWorkBook.Sheets(nomfeuille).select
      If Sheet Is Nothing Then
         Error 9999, "Impossible d'initier la feuille active"   
      End If
      Call OtherInit
   End Sub
   
   Private Sub OtherInit
      Set Sheets=XLApp.Sheets         
      Set Columns = Sheet.Columns             
      Set Rows = Sheet.Rows           
      Set Workbooks=XLApp.Workbooks
      Set Application=XLApp
      Set Worksheets=ActiveWorkbook.Worksheets
   End Sub
   
        '// ---------------------------------------------------------------------------
        '// Ouverture, Sauvegarde, Fermeture
        '// --------------------------------------------------------------------------- 
   
        '//--- Ouverture
   Sub OpenWorkBook(filename As String, active As Integer)
      On Error Resume Next
      XLWorkBook.Open  filename
      If Err Then
         Error 9999, "Impossible d'ouvrir le fichier " & filename
      End If
      If active Then
         Call init
         Set Cells=Sheet.Cells     
      End If
   End Sub 
   
        '//--- Sauvegarde de la feuille ---     
   Sub SaveAs(FileName As String)                         
      XlApp.ActiveWorkbook.SaveAs FileName     
      If Err Then
         Error 9999, "Impossible de sauvegarder le classeur " & filename
      End If         
   End Sub 
   
        '//--- sauvegarde
   Sub Save
      On Error Resume Next
      If isEcho Then Print "Sauvegarde du fichier"
      XlApp.ActiveWorkbook.Save
      If Err Then
         Error 9999, "Impossible de sauvegarder le classeur"
      End If
   End Sub                         
   
        '//--- Fermeture
   Sub CloseActiveWorkBook 
      On Error Resume Next
      ActiveWorkBook.Close
      If Err Then
         Error 9999, "Impossible de fermer le classeur en cours"
      End If
   End Sub
   
        '//--- Quitte
   Sub CloseSession
      On Error Resume Next
      XLApp.Quit               
      If Err Then
         Error 9999, "Impossible de fermer la session Excel"
      End If
   End Sub 
   
End Class

'// ------------------------------------------------------------------------------------------
'// Liste des méthodes disponibles la gestion des feuilles
'// -------------------------------------------------------------------------------------------


Public Class ExcelMethods As ExcelSession
   
        '// ---------------------------------------------------------------------------
        '// Ecriture dans une cellule
        '// ---------------------------------------------------------------------------
   Sub SetCellule(Ligne As Long, colonne As Long, v As Variant)   
      On Error Resume Next
      Sheet.Cells(Ligne,Colonne)=v
      If Err Then
         Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      End If
   End Sub
   
   
   
   Sub SetFormule(Ligne As Long, colonne As Long, v As Variant)   
      On Error Resume Next
      Sheet.Cells(Ligne,Colonne).FormulaLocal=v
      If Err Then
         Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      End If
   End Sub
   
   Sub calculate(Ligne As Long, colonne As Long)   
      On Error Resume Next
      Sheet.Cells(Ligne,Colonne).Calculate
      If Err Then
         Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      End If
   End Sub
   
   
   
        '// ---------------------------------------------------------------------------
        '// Lecture d'une cellule
        '// --------------------------------------------------------------------------- 
   Function GetCellule(L As Long, C As Long) As Variant           
      On Error Resume Next
      GetCellule=Cells(L,C).Value             
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"             
   End Function           
   
        '// ---------------------------------------------------------------------------
        '// Nombre lignes et colonnes actives
        '// --------------------------------------------------------------------------- 
   
        '/--- Colonnes
   Function GetColumns As Long
      On Error Resume Next
      Sheet.Cells.SpecialCells(11).Activate       
      GetColumns = XLApp.ActiveWindow.ActiveCell.Column               
   End Function
   
   Function ReturnColumns(L As Long, C As Long) As String
      On Error Resume Next
      
      Sheet.Cells(L,C).Activate
      ReturnColumns = XLApp.ActiveWindow.ActiveCell.Address
   End Function
   
        '/--- lignes
   Function GetRows() As Long
      On Error Resume Next
      Sheet.Cells.SpecialCells(11).Activate
      GetRows = XLApp.ActiveWindow.ActiveCell.Row     
   End Function
   
      '// ---------------------------------------------------------------------------
        '// Copier/coller un tableau
        '// --------------------------------------------------------------------------- 
   
   
   Sub CopyTablo(L1 As Long,L2 As Long,L3 As Long,L4 As Long )
      
      var1=Str(L1)+":"+Trim(Str(L2))
      var2=Str(L3)+":"+Trim(Str(L4))
      On Error Resume Next
      Sheet.Rows(var1).Copy
      Sheet.Rows(var2).Select
      Sheet.Paste
      
      
      
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   
   
        '// ---------------------------------------------------------------------------
        '// Gestion des feuilles
        '// --------------------------------------------------------------------------- 
   
        '//--- Nommer une feuille
   Sub SetSheetName(n As String)                           
      On Error Resume Next
      sheet.name=n           
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '//--- Nombre de feuilles
   Function GetSheets() As Integer
      On Error Resume Next
      GetSheets=Sheets.Count
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"     
                'Application.Sheets.Add before:=Sheets.Item(Sheets.Count), Type:=xlWorksheet
   End Function
   
        '//--- Ajouter une feuille
   Sub AddSheet()
      On Error Resume Next
      With Sheets.Add
         .Before=(Sheets.Count)
         .Type=xlWorksheet
      End With       
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- Rendre une feuille active
   Sub SetSheet(f As Integer)
             '--- Set Sheet=XLApp.Workbooks(1).Worksheets(n)
          '--- La méthode ci-dessous est plus relative         
      On Error Resume Next
      Set Sheet=ActiveWorkBook.Worksheets(f)
      If Err Then
         Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      Else
         Set Cells=Sheet.Cells
      End If                         
   End Sub
   
   
   
        '// ---------------------------------------------------------------------------
        '// Filtres automatiques
        '// ---------------------------------------------------------------------------
   Sub AutoFilter (RangeArea As String)           
      On Error Resume Next
      Sheet.Range(RangeArea).AutoFilter                                               
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub         
   
        '// ---------------------------------------------------------------------------
        '// Filtres automatiques
        '// --------------------------------------------------------------------------- 
   Sub AutoFormat(d As Variant, f As Variant, style As Integer)           
      XLApp.Range(d, f).Select
      Call XLApp.Selection.AutoFormat(style,True,True,True,True,True,True)           
   End Sub
   
        '// ---------------------------------------------------------------------------
        '// Tri d'une feuille
        '// --------------------------------------------------------------------------- 
   Sub sortCells1(d As Variant, f As Variant, k1 As Variant)
                'Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,
          'Header, OrderCustom, MatchCase, Orientation, SortMethod,
          'DataOption1, DataOption2, DataOption3)
      Dim selection As Variant
      XLApp.Range(d,f).Select                                 
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending)
   End Sub
   
   Sub sortRangeArea1(Area As String, k1 As Variant)
      Dim selection As Variant               
      XLApp.Range(Area).Select       
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending)
   End Sub
   
   Sub sortCells2(d As Variant, f As Variant, k1 As Variant, k2 As Variant)
      Dim selection As Variant
      XLApp.Range(d,f).Select                                 
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending,k2,,xlAscending)
   End Sub
   
   Sub sortRangeArea2(Area As String, k1 As Variant, k2 As Variant)
      Dim selection As Variant               
      XLApp.Range(Area).Select       
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending,k2,,xlAscending)
   End Sub
   
   Sub sortCells3(d As Variant, f As Variant, k1 As Variant, k2 As Variant, k3 As Variant)
      Dim selection As Variant
      XLApp.Range(d,f).Select                                 
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending, k2, ,xlAscending ,k3,xlAscending)
   End Sub
   
   Sub sortRangeArea3(Area As String, k1 As Variant, k2 As Variant, k3 As Variant)
      Dim selection As Variant               
      XLApp.Range(Area).Select       
      Set selection=XLApp.Selection           
      Call Selection.Sort(k1,xlAscending,k2, , xlAscending,k3,xlAscending)
   End Sub
   
        '// ---------------------------------------------------------------------------
        '// Largeur colonne, hauteur ligne
        '// ---------------------------------------------------------------------------
   
        '// Largeur automatique des colonnes
   Sub AutoFit                     
      On Error Resume Next
      Sheet.Columns.AutoFit           
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '//--- Largeur d'une colonne ---       
   Sub WidthColumns( C As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Columns(C).ColumnWidth=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '//--- Hauteur d'une ligne     
   Sub RowHeight( L As Variant, Trigger As Variant)
      On Error Resume Next
      Sheet.Rows(L).RowHeight=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub         
   
        '// ---------------------------------------------------------------------------
        '// Gestion des fontes
        '// ---------------------------------------------------------------------------
   
        '-- Gestion des fontes                 
   Sub SetFontRows(L As Variant, Trigger As String)               
      On Error Resume Next
      Sheet.Rows(L).Font.Name=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetFontColumns(C As String, Trigger As String)             
      On Error Resume Next
      Sheet.Columns(C).Font.Name=Trigger             
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetFontRange(Area As String, Trigger As String)             
      On Error Resume Next
      Sheet.Range(Area).Font.Name=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetFontCells(L As Long, C As Long, Trigger As String)               
      On Error Resume Next
      Sheet.Cells(L,C).Font.Name=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub         
   
        '// ---------------------------------------------------------------------------
        '// Formatage des cellulles
        '// ---------------------------------------------------------------------------         
   
   Sub fusioncellules(l1 As Integer,c1 As Integer,l2 As Integer,c2 As Integer)
      On Error Resume Next
      
      Sheet.Range(.Cells(l1, c1), .Cells(l2, c2)).Merge
      
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   
   Sub SetNumberFormatRows(L As Variant, Trigger As String)
      On Error Resume Next
      Sheet.Rows(L).NumberFormat=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetNumberFormatColumns(C As String, Trigger As String)
      On Error Resume Next
      Sheet.Columns(C).NumberFormat=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetNumberFormatRange(Area As String, Trigger As String)
      On Error Resume Next
      Sheet.Range(Area).NumberFormat=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub SetNumberFormatCells(L As Long, C As Long, Trigger As String)
      On Error Resume Next
      Sheet.Cells(L,C).NumberFormat=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '// ---------------------------------------------------------------------------
        '// Alignement des cellules
        '// ---------------------------------------------------------------------------
   
    '--- Alignement vertical ---
    ' xlVAlignBottom, xlVAlignCenter, xlVAlignDistributed, xlVAlignJustify, xlVAlignTop 
   Sub VerticalAlignementRows(L As Variant, Trigger As Variant)
      On Error Resume Next
      Sheet.Rows(L).VerticalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub VerticalAlignementColumns(C As String, Trigger As Variant)
      On Error Resume Next
      Sheet.Columns(C).VerticalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub VerticalAlignementRange(Area As String, Trigger As Variant)
      On Error Resume Next
      Sheet.Range(Area).VerticalAlignment=Trigger             
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub VerticalAlignementCells(L As Long, C As Long, Trigger As Variant)
      On Error Resume Next
      Sheet.Cells(L,C).VerticalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '--- Alignement horizontal --
        ' xlHAlignCenter, xlHAlignDistributed, xlHAlignJustify, xlHAlignLeft, or xlHAlignRight 
   Sub HorizontalAlignementRows(L As Variant, Trigger As Variant)
      On Error Resume Next
      Sheet.Rows(L).HorizontalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub HorizontalAlignementColumns(C As String, Trigger As Variant)
      On Error Resume Next
      Sheet.Columns(C).HorizontalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub HorizontalAlignementRange(Area As String, Trigger As Variant)
      On Error Resume Next
      Sheet.Range(Area).HorizontalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub HorizontalAlignementCells(L As Long, C As Long, Trigger As Variant)
      On Error Resume Next
      Sheet.Cells(L,C).HorizontalAlignment=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '// ---------------------------------------------------------------------------
        '// Gestion des bordures
        '// ---------------------------------------------------------------------------
   
     '// --- type de trait  (s) ---
        ' // xlContinuous, xlDash, xlDashDot,xlDashDotDot, xlDot, xlDouble, xlLineStyleNone ou xlSlantDashDot           
        '// --- Epaisseur (w) ---
        ' xlHairline, xlThin, xlMedium ou xlThick               
   Sub StyleBorderRange (Areas As String, s As Variant, w As Variant)                                             
      On Error Resume Next
      With   Sheet.Range(Areas).Borders               
         .LineStyle=s
         .Weight = w
      End With
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub StyleBorderColumns (C As String, s As Variant, w As Variant)                                               
      On Error Resume Next
      With  Sheet.Columns(C).Borders               
         .LineStyle=s
         .Weight = w
      End With
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub StyleBorderRows (L As Variant, s As Variant, w As Variant)                                         
      On Error Resume Next
      With  Sheet.Rows(L).Borders               
         .LineStyle=s
         .Weight = w
      End With
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub StyleBorderCells (L As Integer, C As Integer, s As Variant, w As Variant)                                           
      On Error Resume Next
      With   Sheet.Cells(L,C).Borders               
         .LineStyle=s
         .Weight = w
      End With
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub                 
   
        '// ---------------------------------------------------------------------------
        '// Mise en forme des cellules (gras, souligné, italic)
        '// ---------------------------------------------------------------------------
   
        '--- Taille de la fonte ---     
   Sub FontSizeRows(L As Variant, Trigger As Integer)
      On Error Resume Next
      Sheet.Rows(L).Font.Size=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub FontSizeColumns(C As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Columns(C).Font.Size=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub FontSizeRange(Area As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Range(Area).Font.Size=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub FontSizeCells(L As Long, C As Long, Trigger As Integer)
      On Error Resume Next
      Sheet.Cells(L,C).Font.Size=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '// --- Soulignement d'une ligne ---   
        '//  xlUnderlineStyleNone, xlUnderlineStyleSingle, xlUnderlineStyleDouble, xlUnderlineStyleSingleAccounting
     '// xlUnderlineStyleDoubleAccounting       
   Sub UnderLineRows(L As Variant,  u As Long)     
      On Error Resume Next
      Sheet.Rows(L).Font.Underline=u
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub                 
   
   Sub UnderLineCells(L As Long, C As Long, u As Long)     
      On Error Resume Next
      Sheet.Cells(L,C).Font.Underline=u
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub UnderLineColumns(C As String,  u As Long)   
      On Error Resume Next
      Sheet.Columns(C).Font.Underline=u
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub UnderLineRange(Area As String, u As Long)   
      On Error Resume Next
      Sheet.Range(Area).Font.Underline=u
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '//--- Italic d'une ligne ---   
   Sub ItalicRows(L As Variant, Trigger As Integer)
      On Error Resume Next
      Sheet.Rows(L).Font.Italic=Trigger       
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub ItalicColumns(C As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Columns(C).Font.Italic=Trigger                   
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub ItalicRange(Area As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Range(Area).Font.Italic=Trigger                   
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub ItalicCells(L As Long, C As Long, Trigger As Integer)
      On Error Resume Next
      Sheet.Cells(L,C).Font.Italic=Trigger   
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '//--- Gras d'une ligne ---     
   Sub BoldRows(L As Variant, Trigger As Integer)
      On Error Resume Next
      Sheet.Rows(L).Font.Bold=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub BoldColumns(C As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Columns(C).Font.Bold=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub BoldCells(L As Long, C As Long,Trigger As Integer)
      On Error Resume Next
      Sheet.Cells(L, C).Font.Bold=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub BoldRange(Area As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Range(Area).Font.Bold=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '--- Retour à la ligne automatique --- 
   Sub WrapColumns( C As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Columns(C).WrapText=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub WrapRows( L As Variant, Trigger As Integer)
      On Error Resume Next
      Sheet.Rows(L).WrapText=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub WrapRange( Area As String, Trigger As Integer)
      On Error Resume Next
      Sheet.Range(Area).WrapText=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   Sub WrapCells( L As Long, C As Long, Trigger As Integer)
      On Error Resume Next
      Sheet.Cells(L,C).WrapText=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
   
        '// ---------------------------------------------------------------------------
        '// Mise en page de la feuille Excel et impression
        '// ---------------------------------------------------------------------------
   
        '// Orientation de la feuille
   Sub SetOrientation(o As Integer)               
      On Error Resume Next
      Sheet.PageSetup.Orientation = o
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub 
   
        '// Entête et bas de page
   Sub PageSetup(header As String, footer As String)
      On Error Resume Next
      With sheet                     
         .PageSetup.centerheader = header
         .Pagesetup.RightFooter = "Page : &P"
         .Pagesetup.CenterFooter = footer
      End With               
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '// Mise en page détaillée
   Sub SetLeftHeader (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.LeftHeader = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
   Sub SetCenterHeader (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.CenterHeader = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
   Sub SetRightHeader (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.RightHeader = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
   Sub SetLeftFooter (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.LeftFooter = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
   Sub SetCenterFooter (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.CenterFooter = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
   Sub SetRightFooter (trigger As String)
      On Error Resume Next
      Sheet.PageSetup.RightFooter = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- nb page en hauteur
   Sub SetFitToPagesTall(trigger As Integer)
      On Error Resume Next
      sheet.PageSetup.Zoom = False           
      Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      Sheet.PageSetup.FitToPagesTall=Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- nb page en largeur
   Sub SetFitToPagesWide(trigger As Integer)
      On Error Resume Next
      sheet.PageSetup.Zoom = False           
      Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
      sheet.PageSetup.FitToPagesWide=trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//-- entête de colonne
   Sub SetPrintTitleColumns(Area As String)
      On Error Resume Next
      sheet.PageSetup.PrintTitleColumns=Areas
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- entête de ligne
   Sub SetPrintTitleRows(Areas As String)
      On Error Resume Next
      Sheet.PageSetup.PrintTitleRows=Areas
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- centrage horizontal
   Sub SetCenterHorizontally(trigger As Integer)
      On Error Resume Next
      Sheet.PageSetup.CenterHorizontally=trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- centrage vertical
   Sub SetCenterCenterVertically(trigger As Integer)
      On Error Resume Next
      Sheet.PageSetup.CenterVertically=trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '// Définir le bloc d'impression
   Sub SetPrintArea (Area As String)
      On Error Resume Next
      Sheet.PageSetup.PrintArea = Area
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '// Impression en mode brouillon
   Sub SetPrintDraft (trigger As Integer)
      On Error Resume Next
      Sheet.PageSetup.Draft = Trigger
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
        '//--- imprimer la feuille
   Sub PrintSheet
      On Error Resume Next
      Sheet.PrintOut
      If Err Then Error 9999,"Erreur excel (" & Lsi_info(2) & ")"
   End Sub
   
End Class

'// ---------------------------------------------------------------------------
'// Importation d'une feuille Excel
'// ---------------------------------------------------------------------------
Public Class ExcelImport As ExcelMethods
   Sub new
      Set XLWorkBook=XLApp.workbooks                                                 
      If XLWorkBook Is Nothing Then
         Error 9999, "Impossible d'initier le classeur"                 
      End If
   End Sub         
End Class

'// ---------------------------------------------------------------------------
'// Importation d'une feuille Excel
'// ---------------------------------------------------------------------------
Public Class ExcelExport As ExcelMethods       
%REM
   Sub new
      Set XLWorkBook=XLApp.Workbooks.add
      If XLWorkBook Is Nothing Then
         Error 9999, "Impossible d'initier le classeur"                 
      End If
      Call Init               
   End Sub
%END REM
   
   Sub new
      Set XLWorkBook=XLApp.Workbooks.open( "C:\Archive_Etiquettes\IndexEtiquette.xls")
      If XLWorkBook Is Nothing Then
         Error 9999, "Impossible d'initier le classeur"                 
      End If
      Call Init               
   End Sub
   
   
End Class


(Utilise la fonction getcellule) et un view.getdocumentbykey, tu devrais t'en sortir...
"Si tu ne réussis rien du premier coup, alors le saut en parachute n'est pas fait pour toi"
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar DomNotes » 26 Mai 2011 à 14:14

Oui, la liste à modifier a le même statut.
J'aimerai bien passer par les formules mais il faut un moyen pour
sélectionner les doc que je dois traiter.

peut etre commencer par importer la fichier excel ds une vue.
Avatar de l’utilisateur
DomNotes
Posteur néophyte
Posteur néophyte
 
Message(s) : 74
Inscrit(e) le : 22 Déc 2004 à 11:08

Messagepar fripouille76 » 26 Mai 2011 à 14:33

Ah ok tu dois déja lire ton fichier excel pour savoir quel nom est impacté , désolé j'ai pas vu cette nuance.

La classe Excel me parait un peu complexe pour le besoin mais tu peux essayer de t'en inspirer.

En lotusScipt je pense que c'est le plus simple du coup, en espérant que tu maitrise cela ?

Rien de bien compliqué..

Faut savoir
- lire un fichier excel
- récupérer les valeurs des colonnes que tu as besoin (Nom Utilisateur , Statut)
- Savoir avec une NotesView rechercher un document correspondant au nom de l'utilisateur de ta colonne (créer pour cela une vue catégorisée avec cette information sur tes document a modifier si besoin)
- Modifier ton document Notes et le sauvegarder

-boucler sur l'ensemble de ton fichier excel.
fripouille76
Maître-posteur
Maître-posteur
 
Message(s) : 430
Inscrit(e) le : 24 Juil 2006 à 11:19

Messagepar roubech » 26 Mai 2011 à 15:50

si tu pars d'un simple fichier texte avec un nom par ligne, ça pourrait donner quelque chose comme ça :
[syntax="LotusScript"] Dim s As New NotesSession
Dim view As NotesView
Dim doc As NotesDocument
Dim nFileNum As Integer
Dim sFileName As String, sText As String

nFileNum = FreeFile()
sFileName = "C:\users.txt"
Set view = s.CurrentDatabase.GetView( "($Users)" )

Open sFileName For Input As nFileNum
Do Until EOF(nFileNum)
Line Input #nFileNum, sText
Set doc = view.getDocumentByKey( sText, True )
If Not doc Is Nothing Then
Call doc.ReplaceItemValue( "Statut", "nouvelle valeur" )
Call doc.Save( False, False )
Else
Print "doc not found : " + sText
End If
Loop
'fermeture du fichier
Close #nFileNum[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar DomNotes » 27 Mai 2011 à 12:58

Merci beaucoup
Je vais tester ce code
Avatar de l’utilisateur
DomNotes
Posteur néophyte
Posteur néophyte
 
Message(s) : 74
Inscrit(e) le : 22 Déc 2004 à 11:08

Messagepar DomNotes » 30 Mai 2011 à 10:56

Merci beaucoup;
J'ai testé et ça répond à mon besoin.


Bonne journée
Avatar de l’utilisateur
DomNotes
Posteur néophyte
Posteur néophyte
 
Message(s) : 74
Inscrit(e) le : 22 Déc 2004 à 11:08

Messagepar DomNotes » 01 Juin 2011 à 09:44

Bonjour,
Je reviens vers vous pour compléter ce code.
En fait en plus d'affecter le statut aux document, je dois récupérer une autre valeur qui se trouve dans la 2eme colonne du fichier txt (le nom du serveur sur le quel se trouve la bal de l'utilisateur) et l'afféctée au champ correspondant.
J'ai utiliser ce code :

Dim s As New NotesSession
Dim view As NotesView
Dim doc As NotesDocument
Dim nFileNum As Integer
Dim sFileName As String, sText As String

nFileNum = FreeFile()
sFileName = "C:\users.txt"
Set view = s.CurrentDatabase.GetView( "($Users)" )

Open sFileName For Input As nFileNum
Do Until EOF(nFileNum)
Line Input #nFileNum, sText
Set doc = view.getDocumentByKey( sText, True )
If Not doc Is Nothing Then
Call doc.ReplaceItemValue( "Statut", "nouvelle valeur" )
Call doc.Save( False, False )
Else
Print "doc not found : " + sText
End If
Loop
'fermeture du fichier
Close #nFileNum

Merci
Avatar de l’utilisateur
DomNotes
Posteur néophyte
Posteur néophyte
 
Message(s) : 74
Inscrit(e) le : 22 Déc 2004 à 11:08

Messagepar roubech » 01 Juin 2011 à 13:25

bonjour

1°) merci de mettre le code entre balise pour plus de lisibilité, car comme ça, je ne vois pas de différence avec le code que j'ai donné

2°) quelle est la question exactement ? tu veux savoir comment distinguer les 2 "colonnes" dans ton fichier texte pour utiliser la première comme clé de recherche et la seconde comme info à mettre à jour ?
Comment est formaté ton fichier ?
Prénom NOM1;serveur1
Prenom NOM2;serveur2

Regarde la fonction split pour découper la ligne que tu lis dans le fichier texte selon un séparateur, comme ; par exemple
values = split(sText, ";")
http://publib.boulder.ibm.com/infocente ... SPLIT.html

ce qui donnerai quelque chose comme ça
[syntax="LotusScript"] Dim s As New NotesSession
Dim view As NotesView
Dim doc As NotesDocument
Dim nFileNum As Integer
Dim sFileName As String, sText As String
Dim values as Variant

nFileNum = FreeFile()
sFileName = "C:\users.txt"
Set view = s.CurrentDatabase.GetView( "($Users)" )

Open sFileName For Input As nFileNum
Do Until EOF(nFileNum)
' Lecture d'une ligne du fichier
Line Input #nFileNum, sText
' découpage de la chaine de texte selon le séparateur ;
values = split(sText, ";")
' Recherche du document à mettre à jour
Set doc = view.getDocumentByKey( values(0), True )
If Not doc Is Nothing Then
' Mise à jour du document
Call doc.ReplaceItemValue( "Server", values(1) )
Call doc.ReplaceItemValue( "Statut", "nouvelle valeur" )
Call doc.Save( False, False )
Else
Print "doc not found : " + sText
End If
Loop
Close #nFileNum[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement

cron