• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

enkele vraagjes ter automatisering van een excel pagina

Status
Niet open voor verdere reacties.

sororitas

Gebruiker
Lid geworden
29 nov 2007
Berichten
15
Goedenavond,

Momenteel ben ik werkszaam in een klein labo ben ik bezig een programmatje (allé, programma is een groot woord) in elkaar te flansen in excel om een beter zicht te kunnen krijgen op bepaalde onderzoeksresultaten.
De bedoeling van het programma is:
1) dat er een pagina voorhanden is waar men gegevens kan invoeren (momenteel voeg ik mijn gegevens handmatig in op dit blad en verberg dan de vorige lijnen. Handiger zou zijn om bvb met een "enter"knop of iets dergelijks te kunnen werken...).
Er wordt op die manier een lijst gecreeerd waarbij devorige gegevens niet verloren gaan, maar gestored worden (een database dus).
2) De ingegeven gegevens worden dan automatisch gekoppeld aan een tweede blad dat dienst doet als berekeningsblad.
De berekeningenvan de vorige data staan hier al, het zou dus achteraan moeten aansluiten.
Concreet wordt met het ingevoerde gegeven één berekening gemaakt (een ALS-voorwaarde) en enkele andere berekeningen.
De andere berekeningen zijn alleen van tel als de als-formule is voldaan.
3) De uitkomst van het meest recente gegeven zou ik dan weer automatisch willen displayen op een ander blad (of een andere sheet).
4) ook werk ik binnen deze database met een grafiek. Is het mogelijk om de grafiek steeds automatisch up te daten zodat hij steeds de laatste vijftig data toont?

Om het allemaal wat minder abstaract te maken even onderstaand voorbeeld (in zwart vindt u het uitgangspunt, in rood zet ik erbij wat ik er graag van zou willen maken):

Blad 1:

1 januari 2007 54.3
2 januari 2007 723.8
3 januari 2007 1.34
4 januari 2007 55.8
5 januari 2007 3304.8

( Bovenstaand hebben we de database. Vandaag zijn we 6 januari en moet er dus een neiuw gegeven ingevoerd worden. De bedoeling is dus dat ik ofwel een manier vindt waarbij ik achteraan 6 januari... invul of dat er op de pagina een vak of kader voorhanden is waarin ik dit gegeven kan invullen waarna het automatisch bij deze gegevensreeks wordt bijgevoegd...)

Blad 2:
54.3 = ALS(A1>10;"ja";"neen") 33%
723.8 = ALS(A2>10;"ja";"neen") 33%
1.34 = ALS(A3>10;"ja";"neen") 33%
55.8 = ALS(A4>10;"ja";"neen") 33%
3304.8 = ALS(A5>10;"ja";"neen") 33%

( dit is het werkblad. Het gegeven dat op 6 januari wordt toegevoegd zou ook hier aansluiting moeten vinden en vervolgens de berekeningen ondergaan. Momenteel doe ik dit dmv =blad!A1 .....; Het grootste probleem is echter het herkennen van de computer van de laatste uitkomst, om deze te importeren naar blad 3)

Blad 3:

3304.8 ja 33%

(Wanneer de gegevens van 6 januari zijn ingevoerd bvb 22 dan zou hier in een kader automatisch " 22 neen 33%" moeten komen)

Blad 4:

Grafiek met twee laatste gegevens (55.8 en 3304.8).

(idem voor deze grafiek, indien 6 januari werd ingevoerd zou hier dan een grafiek dienen te verschijnen met als punten 3304.8 en 22)

Het lijkt vrij simpel, maar ik kom er met mijn kennis niet (ben wel op zoek gegaan op het net naar cursusjes (maar met de tools die ik daar vind (bvb vlookup, macro ed kom ik erzelf moeilijk uit))).

Indien iemand mij hierbij kan helpen of een tipje van de sluier kan plichten zal ik hem eeuwig dankbaar zijn.

Alvast bedankt.

Greetz,

Sororitas
 
Een (gezipt) Excel bestand toevoegen aan je post verhoogt naar mijn mening de responsrate, omdat het dan makkelijker te begrijpen is hoe de data gestructureerd is, hoe je het juist wil enz.
 
Ik denk dat het gelukt is (ben zoals je ziet een beetje onhandig met die dingen ;-)).

Soit, als er nog zaken dienen verduidelijkt, let we know...
 

Bijlagen

Ik vermoed dat voor het "displayen" van de meest courante waarde (antwoord) een matrixformule kan gebruikt worden in de trand van {=SOM(MAX(A:A);B:B))}.

Met deze formule zoek ik eerst de laatste datum op (kolom A, waarbij dus de maximum datum wordt gezocht) en displayed dan de B waarde daaraan vastgekoppeld.

Echter, ook in deze formule zit een fout.

Ik zoek intussen verder...
 
Hier materiaal om één en ander op te lossen.

De INSERT knop zet je zo op je blad:

haal de werkblak Visual Basic te voorschijn, en van de Werkset Besturingselementen haal je de knop op en zet je die waar je wil.

Klik met rechtermuisknop op de knop en neem "Code weergeven" uit het context menu. Je komt in VBA terecht.

Plak deze code:
Code:
Private Sub CommandButton1_Click()
    
    Dim r As Range
    
    For Each r In Sheets("invoer+uitkomst").Range("B5:B11")
        If Len(r.Value) > 0 Then
            With r.Resize(1, 2)
                .Copy
                Sheets("werkblad").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats
                .ClearContents
            End With
        End If
    Next
    
End Sub

Wigi
 
Over het ophalen van de meest recente gegevens:

in F5:

=MAX(werkblad!$A$1:$A$300)

In G5:

=VERT.ZOEKEN($F$5;werkblad!A1:$D$300;2)

Rest is analoog.

Wigi
 
Ten laatste, op mijn site staat een uitgewerkt voorbeeld over het tonen van de laatste 5 gegevens in een grafiek.

Ga even naar mijn site, www.wimgielis.be, dan naar Excel, dan naar "Professionele grafieken". Als ik mij niet vergis is het het laatste of voorlaatste tabblad in het Excel bestand (download dat eerst).

Wigi
 
Hier materiaal om één en ander op te lossen.

De INSERT knop zet je zo op je blad:

haal de werkblak Visual Basic te voorschijn, en van de Werkset Besturingselementen haal je de knop op en zet je die waar je wil.

Klik met rechtermuisknop op de knop en neem "Code weergeven" uit het context menu. Je komt in VBA terecht.

Plak deze code:
Code:
Private Sub CommandButton1_Click()
    
    Dim r As Range
    
    For Each r In Sheets("invoer+uitkomst").Range("B5:B11")
        If Len(r.Value) > 0 Then
            With r.Resize(1, 2)
                .Copy
                Sheets("werkblad").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats
                .ClearContents
            End With
        End If
    Next
    
End Sub

Wigi

Alvast bedankt voor de moeite WIGI.
Ik heb de stappen allemaal doorlopen en het lijkt me te gaan lukken.
Alleen geeft de pc een Fout'1004' aan (Methode pastespecial van klasse range is mislukt)
Enig idee van verbetering (ander foutmeldingen heb ik zelf kunnen verbeteren, die hadden namelijk te maken met de naam van de werkbladen etc.)

Groet,

Sororitas
 
aha, dat heeft inderdaad gewerkt.

Soit, alles werkt tot dusver. Alleen die insertknop nog niet.
 
Hoi,

Ik vond dit een leuk vraagstuk, en heb even meegespeeld.
de knop werte bij mij ook niet, maar heb de macro gewoon onder "module" ingevoegd.
Hierdoor krijg je:

Code:
Sub Verplaats()
'
' Verplaats Macro
' De macro is opgenomen op 1-12-2007 door OEM.
'
    
    Dim r As Range
    
    For Each r In Sheets("invoer+uitkomst").Range("B5:B11")
        If Len(r.Value) > 0 Then
            With r.Resize(1, 2)
                .Copy
                Sheets("werkblad").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats
                .ClearContents
            End With
        End If
    Next
    
End Sub

en voila, het werkt.

Albatros
 
Albatros,

Kan je me dat even in stapjes uitleggen (want ik vermoed dat er enkele tussenstappen niet door mij gevolgd worden...:confused:).
Ik ben eerlijk gezegd een totaal leeghoofd wat betreft VBA ;)

Alvast bedankt voor de moeite en de input.

Greets,

Sororitas
 
Even in vogelvlug (Lach niet om mijn nick-naam)
In excel: alt+F11
invoegen - module
code aan de rechterkant plakken
in werkblad:
werkbalk formulier: knop (deze plaatsen in werkblad)
macro toevoegen aan knop met de naam "verplaats"

vervolgens kun je de makro starten, door op de knop te klikken
Suc6

Albatros
 
Albatros,

ik ben hier al van 6 uur aan het foefelen op mijn pc, perro, ik kom er weer niet uit (stupid:D:o).

Hetkomt er op neer dat ik een knop heb aangemaakt via formulieren (niet helemaal meer wat je schreef, maar na enkele uurtjes kwakkelen ;)) en die vervolgens heb gekoppeld aan een macro genaamd verplaats.
Wanneer ik op de knop druk om de macro te laten starten geeft de pc de melding: kan niet uitvoeren in de onderbrekingsmodus...

Het enige dat me nu nog rest is de vraag of je me de uitwerking even in zo een zip file (zoals ik er eentje gemaakt heb een paar posts eerder) zou willen maken...
Dan kan ik het mischien proberen namaken....

Greets,

Sororitas
 
Laatst bewerkt:
Hello Albatros,

Hier op de pc at work werkt het zonde r problemen (thuis is een andere zaak, maar naar ik vermoed heeft dat te maken met mijn instellingen).
In ieder geval: thank you verry much for the effort!!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan