Gå til innhold

[Løst] excel 2007 vba summere sammen ark ut i fra et kriteriet


Anbefalte innlegg

Hei.

 

Jeg har en arbeidsbok med 53 ark.

 

ark1 = Total

ark 2 = uke 1

ark 3 = uke 2

O.S.V

 

alle arkene er satt opp som dette.

kolonne C rad 3 - rad 10 er omsetning for 2011

kolonne D rad 3 - rad 10 er omsetning for 2012.

Kolonne E rad 3 - rad 10 er differansen mellom 2011 og 2012

i rad 11 i kolonne C og D summerer rad 3 - rad 10 (dette er da totalen for gjeldene ark)

rad 11 i kolonne E regner ut differansen

 

Så kommer problemet.

Ark Total skal legge sammen ark Uke 1 til Uke 52. men de skal bare summeres sammen hvis celle d11 (totalen for 2012 den uka = mer enn 0)

 

Det vil si at hvis omsetningen for 2012 ikke er fylt inn skal makroen stoppe

hvis omsetningen for 2012 er fylt inn til f.eks Uke 3 vil jeg at

den summer sammen i uke1 + uke2 + uke 3

 

Kan prøve og forklare i kode

Sheets("uke 1").Select
   If Range("D11") >= 1 Then
    Range("E3").Select
	    Do Until ActiveCell = "t"
		    ActiveCell.FormulaR1C1 = "=rc[-1]-rc[-2]"
		    ActiveCell.Offset(1, 0).Select
	    Loop
	 ' "" her veit jeg ikke helt hvordan jeg skal gå fram""
	 ' neste arkfane. gjør samme sjekken.
	 ' så tilbake til ark Total når celle D11 = 0 i det aktivearket
	 ' og summere sammen de arkene hvor celle d11 = mer enn 0
    Sheets(1).Select
    Range("c3").Select
	for 1 = 1 to 7
    ActiveCell.FormulaR1C1 = "=Uke 1'!RC"  ' + de arkene som er gått igjennom
    ActiveCell.Offset(0, 1).Select
    ActiveCell.FormulaR1C1 = "='Uke 1'!RC"' + de arkene som er gått igjennom
	ActiveCell.Offset(0, -1).Select
    ActiveCell.Offset(1, 0).Select
    next i

   Else
    Sheets(1).Select
    Exit Sub
   End If

 

Håper forklaringen er god nok, hvis ikke bare si i fra.

 

Hilsen

 

Torbjørn

Lenke til kommentar
Videoannonse
Annonse

Hei.

 

Kom over en formel som summerer sammen samme celle i flere ark.

=summer('uke 1:uke 52'!c3)

Går det ann og lage en tilsvarende formel med kriteriet? Har prøvd

=SUMMERHVIS('uke 1: uke 52'!D11;>=1;'Uke 1:Uke 52'!C3)

Men det fungerer ikke.

 

Hilsen

 

Torbjørn

Lenke til kommentar

Hei.

 

Tror jeg har en kode som kan fungere hvis den blir satt opp riktig.

For i = 2 To Sheets.Count
   If Sheets(i).Range("D11") >= 1 Then
   Sheets(i).Range("E3").Select
	    Do Until ActiveCell = "t"
		    ActiveCell.FormulaR1C1 = "=rc[-1]-rc[-2]"
		    ActiveCell.Offset(1, 0).Select
	    Loop
    Sheets(1).Range("C3").Value = Sheets(1).Range("c3") + Sheets(i).Range("C3")
   End If
Next

får runtime error 1004

select metoden i range klassen misslyktes

 

Noen som veit hvordan jeg kan modifesere den til og fungere?

 

Hilsen

 

Torbjørn

Lenke til kommentar

Hei.

 

Da var den løst

For i = 2 To Sheets.Count
   If Sheets(i).Range("D11") >= 1 Then
   Sheets(i).Select
   Range("E3").Select
	    Do Until ActiveCell.Value = "t"
		    ActiveCell.FormulaR1C1 = "=rc[-1]-rc[-2]"
		    ActiveCell.Offset(1, 0).Select
	    Loop

    Sheets(1).Range("C3").Value = Sheets(1).Range("C3") + Sheets(i).Range("C3")
    Sheets(1).Range("C4").Value = Sheets(1).Range("C4") + Sheets(i).Range("C4")
    Sheets(1).Range("C5").Value = Sheets(1).Range("C5") + Sheets(i).Range("C5")
    Sheets(1).Range("C6").Value = Sheets(1).Range("C6") + Sheets(i).Range("C6")
    Sheets(1).Range("C7").Value = Sheets(1).Range("C7") + Sheets(i).Range("C7")
    Sheets(1).Range("C8").Value = Sheets(1).Range("C8") + Sheets(i).Range("C8")
    Sheets(1).Range("C9").Value = Sheets(1).Range("C9") + Sheets(i).Range("C9")
    Sheets(1).Range("C10").Value = Sheets(1).Range("C10") + Sheets(i).Range("C10")
    Sheets(1).Range("D3").Value = Sheets(1).Range("D3") + Sheets(i).Range("D3")
    Sheets(1).Range("D4").Value = Sheets(1).Range("D4") + Sheets(i).Range("D4")
    Sheets(1).Range("D5").Value = Sheets(1).Range("D5") + Sheets(i).Range("D5")
    Sheets(1).Range("D6").Value = Sheets(1).Range("D6") + Sheets(i).Range("D6")
    Sheets(1).Range("D7").Value = Sheets(1).Range("D7") + Sheets(i).Range("D7")
    Sheets(1).Range("D8").Value = Sheets(1).Range("D8") + Sheets(i).Range("D8")
    Sheets(1).Range("D9").Value = Sheets(1).Range("D9") + Sheets(i).Range("D9")
    Sheets(1).Range("D10").Value = Sheets(1).Range("D10") + Sheets(i).Range("D10")
   Else
   Sheets(1).Select
   Exit Sub
   End If
Next

 

Hilsen

 

Torbjørn

Endret av Bigelk
Lenke til kommentar

Hei.

 

Den var ikke helt løst, må jo selvfølgelig slette innholdet i ark Total før man kjører makroen. hvis ikke vil den bare summere med tall som allerede er summert.

lagde også en loop ut av den siste delen av koden

Dim i As Integer
Dim y As Integer
Sheets(1).Range("c3:d10").ClearContents
For i = 2 To Sheets.Count
	If Sheets(i).Range("D11") &--#62;= 1 Then
		Sheets(i).Select
		Range("E3").Select
		Do Until ActiveCell.Value = "t"
			ActiveCell.FormulaR1C1 = "=rc[-1]-rc[-2]"
			ActiveCell.Offset(1, 0).Select
		Loop
		For y = 3 To 10
			Sheets(1).Cells(y, 3).Value = Sheets(1).Cells(y, 3) + Sheets(i).Cells(y, 3)
			Sheets(1).Cells(y, 4).Value = Sheets(1).Cells(y, 4) + Sheets(i).Cells(y, 4)
		Next y

	Else
		Sheets(1).Select
		Exit Sub
	End If
next

 

Hilsen

 

Torbjørn

Endret av Bigelk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...