Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: progje in excel VB  (gelezen 2351 keer)

0 leden en 1 gast bekijken dit topic.

Offline firmin

  • Ervaren lid
  • ***
  • Berichten: 442
  • Geslacht: Man
  • Excel Specialist
progje in excel VB
« Gepost op: 06 september 2006, 18:39:50 »
Goedendag oplossers,

Ik ben al een tijdje zoet met het uitwerken van een progje dat de waarde leest van een cell in een vorige sheet en deze teruggeeft in de volgende.

Dus bv. sheet1 heeft een bepaalde waarde in cell A1 en
deze waarde moet gaan naar cell A1 van sheet2.
Onderstaande functie zou dat moeten doen.

Function RefOnPrevSheet(Addr As String) As Variant
    Application.Volatile True
    With Application.Caller.Parent
    If .Index = 1 Then
        RefOnPrevSheet = _
        .Parent.Worksheets(.Parent.Worksheets.Count).Range(Addr).Value
    Else
        RefOnPrevSheet = .Previous.Range(Addr).Value
    End If
    End With
End Function

Vraag is nu , waar zet ik deze code ?
                     hoe roep ik ze op.
Volgens mijn gegevens zou dat moeten gaan met

= RefOnPrevSheet(Addr)

Thanks voor de goede hulp

Firmin
PB easynote LE69KB,AMD quad-core,1000GB HDD,AMD Radeon HD8330,8GB DDR3
Windows 10,office 2007
MSE, Internet Explorer 11

Offline jpvs

  • Lid
  • *
  • Berichten: 33
  • Geslacht: Man
  • Oplossing.be
Re:progje in excel VB
« Reactie #1 Gepost op: 07 september 2006, 09:52:11 »
Firmin,

De functie moet je in een module plaatsen.


Meer info zie : https://www.cpearson.com/excel/sheetref.htm


Getting The Value Of A Cell On The Previous Worksheet

The following function will return the value of the specified cell on the previous worksheet.  Addr is a string that may be either the address of a cell or the name of a defined name.

Function RefOnPrevSheet(Addr As String) As Variant
    Application.Volatile True
    With Application.Caller.Parent
    If .Index = 1 Then
        RefOnPrevSheet = _
        .Parent.Worksheets(.Parent.Worksheets.Count).Range(Addr).Value
    Else
        RefOnPrevSheet = .Previous.Range(Addr).Value
    End If
    End With
End Function


You can use this function to get the value of C5 on the previous worksheet:

=RefOnPrevSheet("C5")
zet op bv Blad2 (of eventueel aanpassen) in cel C5 een waarde.

Note that the "C5" is passed in quotes, as a string, rather than a range reference.

Pierre
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline WG

  • Ervaren lid
  • ***
  • Berichten: 366
  • Geslacht: Man
  • http://www.wimgielis.be
Re:progje in excel VB
« Reactie #2 Gepost op: 07 september 2006, 10:34:51 »
Firmin

zet er in het vervolg eens bij van waar je de code haalde. Dat maakt het gemakkelijker voor de helpers.

Wigi
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline firmin

  • Ervaren lid
  • ***
  • Berichten: 442
  • Geslacht: Man
  • Excel Specialist
Re:progje in excel VB
« Reactie #3 Gepost op: 07 september 2006, 10:43:13 »
WG

Sorry was de bijlage vergeten.

In ieder geval thanks voor uw help.
Heb reeds verschillende programma's gemaakt (toen iok nog werkte in de banksector), was vergeten dat het in een module moest staan. Vandaar dat ik in de betreffende cell een foutmelding kreeg bij inbreng van =+formule.
Ik heb uiteindelijk de functie PrevSheetName gebruikt en in de cell =INDIRECT(PrevSheetName()&"!A1")+1.
Met nog een kleine IF toevoeging zal dit perfect werken.
IF omdat de sheetnummering veranderd voor de 1ste week van ieder jaar.
weken 50-51-52  van, 2006 dragen bv e50-e51-e52
week 1 van 2007 d01.
In ieder geval THANKS

Firmin
PB easynote LE69KB,AMD quad-core,1000GB HDD,AMD Radeon HD8330,8GB DDR3
Windows 10,office 2007
MSE, Internet Explorer 11

 


www.combell.com