[Excel] =SOM in een string

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Stinow
  • Registratie: November 2006
  • Laatst online: 17-04 23:05
Goedemorgen,

Voor een eenvoudig samenvoeg scriptje heb ik de volgende code bedacht:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Totaal()
    Dim naam As String
    Dim aantal As Integer
    Dim sommen As String
    naam = Cells(1, 3)
    aantal = Cells(2, 3)
        
    For veld = 7 To 67
[b]        Cells(veld, 2) = "=SOM("[/b]
        
        For i = 1 To aantal
            Cells(veld, 2) = Cells(veld, 2) & "'[" & naam & "_" & i & ".xls]Blad1'!$B$" & veld & ";"
        Next i
        Cells(veld, 2) = Cells(veld, 2) & ")"
    Next veld
End Sub


De code moet uit een aangeven aantal bestanden (met als bestandsnaam de klantnaam en een cijfer), wat waarden halen en die optellen.Ik ben redelijk nieuw tot schrijven in Excel, maar ik zit volgens mij al redelijk close tot wat ik wil.

Probleem is dat hij nu stopt op de dikgedrukte regel. De =SOM vindt hij volgens mij niet leuk in een string. Iemand enig idee hoe dit op te lossen is?

Alvast bedankt!

Groeten,

Stijn

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat wil je daar nou precies bereiken? Een functie uitvoeren* of de tekst SOM daar weergeven?

*hint hint hint*

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Stinow
  • Registratie: November 2006
  • Laatst online: 17-04 23:05
Ik wil de tekst =SOM( erin zetten, zodat ik verderop in de loop de gehele tekst (formule) in de velden heb staan. Even er vanuit gaande dat hij die dan vanzelf uitvoerd.

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Stinow schreef op dinsdag 19 augustus 2008 @ 11:39:De =SOM vindt hij volgens mij niet leuk in een string.
het probleem is net dat je een gedeelte van een formule rechtstreeks in een cel plaatst. probeer eerst de volledige formule samen te stellen door deze in een variabele samen te voegen, en dan de cel te vullen met de volledig samengestelde formule.
Visual Basic:
1
2
3
4
5
'...
  next
 Cells(veld, 2).formula=mijnvariabelemetdevolledigeformule
next
end sub

Acties:
  • 0 Henk 'm!

  • Stinow
  • Registratie: November 2006
  • Laatst online: 17-04 23:05
Hmm bedankt voor de tip!

Inmiddels heb ik het als volgt aangepast, maar hij geeft nog dezelfde ''fout''. Ook ongeacht ik een '=' voor de 'SOM' zet in de variable.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Totaal()
    Dim naam As String
    Dim aantal As Integer
    Dim formule
    naam = Cells(1, 3)
    aantal = Cells(2, 3)
        
    For veld = 7 To 67
        formule = ""
        For i = 1 To aantal
            formule = formule & "'[" & naam & "_" & i & ".xls]Blad1'!$B$" & veld & ";"
        Next i
        formule = "=SOM(" & formule & ")"
        Cells(veld, 2).Formula = formule
        
    Next veld
End Sub


Wat nu.. ;)

Acties:
  • 0 Henk 'm!

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 05-05 13:55
Geeft hde macro een fout (welke dan?) of staat niet de uitkomst, maar de formule in de cel?

Acties:
  • 0 Henk 'm!

Anoniem: 113297

& ";" -> & "," som -> sum
de formula-eigenschap neemt een niet-gelocaliseerde formule als waarde. in de praktijk betekent dit dat de formules steeds in het engels zijn, en het scheidingsteken de komma is.

Acties:
  • 0 Henk 'm!

  • Stinow
  • Registratie: November 2006
  • Laatst online: 17-04 23:05
Hij geeft fout 1004: "Door de toepassing of het object gedefinieerde fout". Vervolgens laat hij niets zien.

Haal ik echter de '=' weg voor 'SOM', dan laat hij de volgende formule zien in de cel:

SOM('[janssen_1.xls]Blad1'!$B$7;'[janssen_2.xls]Blad1'!$B$7;)

Acties:
  • 0 Henk 'm!

  • Stinow
  • Registratie: November 2006
  • Laatst online: 17-04 23:05
De ; naar , en de som naar sum aangepast en hij werkt nu inderdaad.

Ah fantastisch, dank je wel!

Weer wat opgestoken. ^_^.
Pagina: 1