Salut le forum,
Probablement que ma question va sembler très basique pour la plus part des spécialistes qui sillonnent ce forum.
Mais après avoir fait de multiples essais, j'ai copié plusieurs macros et j'ai vainement essayé de les transformer pour les adapter à mon besoin.
je dois faire appel à votre aide pour m'aider à trouver la solution.
Voici un petit aperçu des fonctionnalités que je dois développer pour le projet fiche de conditionnement...
Projet fiche de conditionnement
I. Descriptif
Ce fichier est relatif au conditionnement des pièces produites dans l'unité où je suis affecté et permet à l'utilisateur d'imprimer un récapitulatif de conditionnement en fonction d'une référence pièce ou d'un numéro de fiche de conditionnement. Cette fiche récapitulative est illustrée par une photographie montrant à l'opérateur le mode de rangement à réaliser pour l'envoi des pièces. Des champs sont aussi édités en automatique en fonction de la sélection de l'utilisateur.
Le fichier fiche de conditionnement est composé de deux feuilles :
« Table » : va permettre à l'utilisateur de créer un nouveau produit en renseignant l’intégralité des colonnes présentent dans la table.
« Fiche Cond. Fr » : va permettre à l'utilisateur d'éditer la fiche de conditionnement pour la fournir à l'opérateur lors de la phase de conditionnement.
II. Fonctionnalités
II.a. Fonction recherche
Cette fonction doit permettre à l'utilisateur de réaliser une recherche par fiche de conditionnement ou par référence pièce.
J'ai réalisé cette fonction grâce à une boite de dialogue différente pour les deux recherches. L'utilisateur doit sélectionner son numéro de fiche de conditionnement ou son numéro de référence pièce dans l'une des deux boite de dialogue.
La valeur sélectionnée par l'utilisateur va être copiée dans la cellule A65.
Ensuite, pour faciliter les recherches j'ai mis en place une fonction « recherchev » pour rechercher l'index correspondant au numéro de fiche de conditionnement ou à la référence pièce. Cette valeur est présente dans la cellule A67, cela va nous aider ensuite pour répondre aux différentes fonctionnalités suivantes.
II.b.Fonction édition des champs
Cette fonctionnalité doit éditer en fonction de la valeur de l'index présent dans la cellule A67 les différents champs grâce à des fonctions recherchev.
II.c. Fonction insertion illustration
Cette fonction doit permettre l'insertion d'une illustration grâce au chemin que j'ai concaténé dans la cellule A69.
III. Travail réalisé
III.a. Fonction recherche
Cette fonction est développée dans le module recherche. Toutefois je me vois dans l'impossibilité de faire une recherche en fonction du numéro de fiche de conditionnement ou du numéro de référence pièce (cellule A67).
Code OOo :
Sub RechercheFicheConditionnement
Dim Dlg As Object, bibli As Object
Dim monDialogue As Object, Validation As Integer
Dim champChiffre As Object
Validation = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
DialogLibraries.Loadlibrary("Standard")
bibli = DialogLibraries.GetByName("Standard")
monDialogue = bibli.GetByName("DialogRecherche")
Dlg = CreateUnoDialog(monDialogue)
Colonne = ThisComponent.Sheets("Table").Columns(1)
lesCellules = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
lesCellules.insertByName("",Colonne)
Plage = lesCellules.Cells.createEnumeration
While Plage.hasMoreElements
Cellule = Plage.nextElement&
Dlg.getControl("ComboBox1").AddItem (Cellule.String, X )
X = X + 1
Wend
champChiffre = Dlg.GetControl("ComboBox1")
if Dlg.Execute = Validation then
leChiffre = champChiffre.text
MonDoc = ThisComponent
MaFeuille = MonDoc.CurrentController.ActiveSheet
oCurseur = MaFeuille.createCursor
MaFeuille.getCellByPosition(0,64).string = leChiffre
end if
Dlg.Dispose
End Sub
Sub RecherchePiece
Dim Dlg As Object, bibli As Object
Dim monDialogue As Object, Validation As Integer
Dim champChiffre As Object
Validation = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
DialogLibraries.Loadlibrary("Standard")
bibli = DialogLibraries.GetByName("Standard")
monDialogue = bibli.GetByName("DialogRecherche")
Dlg = CreateUnoDialog(monDialogue)
Colonne = ThisComponent.Sheets("Table").Columns(6)
lesCellules = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
lesCellules.insertByName("",Colonne)
Plage = lesCellules.Cells.createEnumeration
While Plage.hasMoreElements
Cellule = Plage.nextElement&
Dlg.getControl("ComboBox1").AddItem (Cellule.String, X )
X = X + 1
Wend
champChiffre = Dlg.GetControl("ComboBox1")
if Dlg.Execute = Validation then
leChiffre = champChiffre.text
MonDoc = ThisComponent
MaFeuille = MonDoc.CurrentController.ActiveSheet
oCurseur = MaFeuille.createCursor
MaFeuille.getCellByPosition(0,64).string = leChiffre
end if
Dlg.Dispose
End Sub
III.b.Fonction édition des champs
Cette fonction est réalisée.
III.c. Fonction insertion illustration
Cette fonction est n'est pas développée mal grès des tentatives avec l'enregistreur de macro OOo.
Code Excel :
sub InsererIllustration
fich = [A70].Value 'recup nom fichier
ligne = [A70].Row 'en quelle ligne ?
ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
ligne = 3
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
.Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = 75 * (ligne - 1) 'et positionner verticalement
End With
End Sub
Merci par avance de votre aide,
Guillaume
[Calc] Fiche de conditionnement
Modérateur : Vilains modOOs
-
- Membre lOOyal
- Messages : 33
- Inscription : 06 févr. 2012 13:12
[Calc] Fiche de conditionnement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Guillaume.gdu le 20 févr. 2012 14:54, modifié 2 fois.
OOo 3.3
XP Pro
XP Pro
-
- RespOOnsable forum
- Messages : 12727
- Inscription : 08 nov. 2005 16:23
- Localisation : Brest, France
Re: [Calc] fiche de conditionnement
Bonjour,
Votre question a été déplacée. Nous vous invitons vivement à lire le descriptif de chaque section mentionné sur la page d'accueil de notre forum.
Merci de votre collaboration.
Ce forum est organisé en sections et vous avez posté votre question au mauvais endroit : <Macro & API>.Guillaume.gdu a écrit :Projet fiche de conditionnement
Votre question a été déplacée. Nous vous invitons vivement à lire le descriptif de chaque section mentionné sur la page d'accueil de notre forum.
Merci de votre collaboration.