tonen figuur t.b.v. parafencontrole

Status
Niet open voor verdere reacties.

jofred

Gebruiker
Lid geworden
16 dec 2006
Berichten
172
Ik ben bezig iets in Excel op te zetten voor de uitvoering van parafencontrole.
Het is de bedoeling dat van een op te geven budgetcode, de naam van de boevoegde persoon met bijbehorende paraaf wordt getoond in een VBA-formulier.
Nu ben ik op zich wel zover dat ik dit kan uitlezen uit een extern bestand.
Mij vraag is nu of er ook een mogelijkheid is om de betreffende parafen binnen op te slaan en deze op te halen.

De code voor de extern op te halen paraaf is

Code:
With img_paraaf
    .Picture = LoadPicture(Bestandsnaam)
    .Visible = True
End With

waarbij img_paraaf de naam is van het object binnen het formulier, waar de paraaf moet worden getoond en bestandsnaam de naam van het parafenbestand, waarin de bewuste paraaf voortkomt.
 
Hallo jofred !

Misschien is mijn interpretatie van je probleem niet de juiste, maar ik meen begrepen te hebben dat je een aantal parafen wil opslaan en deze tonen in een Image-object van een formulier.

Als je de parafen opslaat in bijvoorbeeld een .JPG bestand met telkens één paraaf en de betreffende bestandsnamen invult in een sheet, naast de naam van de persoon op wie de paraaf betreking heeft, dan kan je aan de hand van deze sheet een naam laten kiezen in het formulier en de macro het gepaste .JPG-bestand laten opladen.

Bekijk het bijgevoegde bestand eens.

Bij het unzippen er op letten dat de .JPG-bestanden in dezelfde directory staan als het Excel-bestand.

Groeten,
MDN111.
 

Bijlagen

Beste MDN111,

Hartelijk dank voor je inspanning, alleen... ik had zelf al een vergelijkbare oplossing bedacht. Waar ik naar op zoek ben is een manier om de images op te slaan binnen het Excel-bestand en vervolgens die in een formulier te tonen.

Enig idee?

Groet,

Jofred
 
Dag jofred !

In het bijgevoegde bestand zijn de figuren met de parafen opgeslagen in het bestand zelf aan de hand van een Image Control voor iedere paraaf.

Dat werkt zonder dat je de .jpg-bestanden er bij nodig hebt.

Alleen, ik heb de parafen manueel in de Image Controls gezet. Dat is doenbaar, denk ik, als je maar enkele personen hebt van wie je de paraaf wil gebruiken. Als er veel personen zijn geeft deze (manuele) oplossing te veel werk, vermoed ik.

Het grote probleem dat ik ontmoette was het volgende: Men kan zoveel image controls dymamisch aan de form toevoegen als men wil (vermoedelijk wel ergens beperkt door de applicatie zelf) maar daarvoor heeft men de .jpg bestanden nodig. Ik dacht dat, als ik eerst de Image Controls met de parafen dynamisch toevoeg aan de UserForm en dan het bestand save, dat dan de .jpg bestanden verder niet meer nodig waren. Maar dat lukt niet. Het Saven van het bestand leidt niet tot het saven van de dynamuisch gewijzigde UserForm! De volgende keer dat men het bestand opent, zijn de dymamisch toegevoegde Image Controls terug verdwenen! Hoe men dat kan realiseren weet ik niet.

Grtz,
MDN111
 

Bijlagen

MDN111,

Ik heb je uitwerking bekeken en het ziet er op zich wel aardig uit. Ik zit nog wel met de volgende punten:
a) het gaat er inderdaad om een aardig aantal parafen die moeten kunnen worden getoond (70 tot 100 stuks)
b) verder heb ik te maken met een zekere mutatiegraad en lijkt de manier waarop ze worden opgeslagen niet erg onderhoudsvriendelijk.

Misschien heb jij of iemand anders nog een idee.

Jofred
 
Hallo jofred !

Ik ga uit van het volgende scenario:

Jij bent de developper die beschikt over 70 tot 100 grafische bestanden (bestandjes) met daarin de parafen van de betreffende personen. Het resultaat moet een Excel-bestand zijn dat je gebruikers toelaat deze parafen te zien, maar je wil alleen het Excel-bestand verdelen en niet de grafische bestanden.

Voor de gemakkelijkheid ga ik er van uit dat alle parafenbestanden eindigen met .jpg en dat ze in dezelfde path staan als het excel-bestand. Eveneens voor de gemakkelijkheid heb ik de paraafbestanden dezelfde naam gegevens als de personen wier paraaf er in steekt.

Als je spreekt van mutaties en onderhoud dan vermoed ik dat er JPG-bestanden zullen verdwijnen van personen wier parafen niet meer moeten getoond worden, en dat er nieuwe bijkomen, en dan wil je het Excel-bestand voor je gebruikers op een efficiënte wijze updaten.

In het XLS-bestand in de bijlage zijn de grafische bestanden als OLE Objecten opgeslagen in de sheet "Images".

Als er wijzigingen zijn kan men door een eenvoudige klik op de knop "Onderhoud" in de sheet "A", alle OLE objecten verwijderen en nieuwe toevoegen op basis van de op dat moment aanwezige grafische bestanden.

Als men het XLS bestand savet als XLA en dat aan de gebruikers verdeelt, dan zien die gebruikers de sheets niet en kunnen ze er ook geen problemen mee hebben.

Grtz,
MDN111.
 

Bijlagen

MDN111,

Ik heb even heel snel gekeken naar je oplossing en kom daar wel verder mee. Hartelijk dank. :thumb:
Ik ga proberen om dit verhaal te integreren in de controle-routine die ik al had geschreven.
Wat mij overigens intrigeerd is dat je van de ingelezen grafische objecten slechts een exemplaar ziet in het Excel-bestand. Moet ik daaruit afleiden dat je ze alleen via VBA kunt benaderen?

Groet,

Jofred
 
Hallo jofred !

Je ziet slechts één exemplaar van de grafische objecten omdat ze allemaal even groot zijn en op dezelfde plaats staan. Ze bedekken elkaar dus zodat je alleen degene ziet die het laatst is toegevoegd. Je zou bij het toevoegen ieder object een andere positie kunnen geven door bij de code
Code:
Set oOLE = oSh.OLEObjects.Add(ClassType:="Forms.Image.1")
ook waarden op te geven voor de parameters Left en Top. Dan zouden ze allen zichtbaar zijn. Ik zie daar echter het nut niet van in, want manuele benadering was niet gewenst wegens te omslachtig voor het onderhoud.

Blijkbaar zijn ze alleen via VBA te benaderen. Hoe dat komt weet ik niet. Het probleem was in de eerste plaats de parafen IN het Excelbestand op te slaan. Ik heb daarvoor allerlei dingen geprobeerd. Zo onder andere ook met
Code:
Sheets("Images").Pictures.Insert(...)
Met die code waren de objecten wel manueel benaderbaar, maar dan vond ik weer geen middel om ze in de Image Control van de UserForm te krijgen. In dat geval waren het blijkbaar ook geen OLEObjecten maar wel Shapes.

Dat brengt mij bij de belangrijkste vraag: Wat is het verschil tussen een OLEObject en een Shape?

Dat is iets wat ik nog niet echt goed begrijp. Mocht iemand dit lezen en mij daarover een goede uitleg of een interessante link kunnen geven, altijd welkom.

Grtz,
MDN111
 
Laatst bewerkt:
MDN111,

Nog bedankt voor je verdere toelichting. De reden waarom ik de individuele parafen nog zou willen zien, is dat ik snel een overzichtje wil hebben van de opgeslagen parafen.
Ik heb met je suggesties en wat andere dingen die ik op het internet gevonden heb iets bruikbaars kunnen maken.
Nu de praktijktest nog.

Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan