Kolommen omdraaien met behoud van formules

Status
Niet open voor verdere reacties.

Peter2016

Gebruiker
Lid geworden
4 sep 2015
Berichten
89
Hallo,

Ik heb een code om kolommen in Range G198:R2797 om kolommen om te draaien, dit werkt, alleen ben ik formules daarna kwijt.
Code die ik nu heb is :
Dim sv
sv = Range("G198:R2797")
Range("G198").Resize(UBound(sv), 12) = Application.Index(sv, Application.Transpose([transpose(row(1:2604))]), Array(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1))

Is er een mogelijkheid om de kolommen om te draaien met behoud van bestaande formules in deze kolommen?
 
Geen idee of het werkt door het ontbreken van een bestandje. Dat code tussen codetags moeten mag ook onderhand wel bekend zijn.

Code:
sv = Range("G198:R2797").formula
 
Hallo VenA,

Met .formula zijn de formules er ook uit helaas.
De formules zitten op de regels eindigend op 93,94,95,96,97
zie bijlage

gr. Peter
 

Bijlagen

  • Omdraaien.xlsm
    321,8 KB · Weergaven: 34
Het bestand bevat koppelingen naar een extern bestand en daar kan ik niets mee. Neem deze link eerst eens door voordat je een vraag stelt. http://www.helpmij.nl/forum/announcement.php?f=5

Wat zijn regels die eindigen op 93,94,95,96,97?

Nb. Mijn suggestie werkt overigens wel. Zie bestandje zoals een voorbeeldbestandje bedoeld is.
 

Bijlagen

  • Omdraaien.xlsb
    21 KB · Weergaven: 26
Laatst bewerkt:
Sorry, dacht dat alle externe koppelingen eruit waren. Is inmiddels gebeurt.
De formules zitten in de regels 293,294,295,296,297, 393,394,395,396,397, etc.

Ik heb op regel 199 de kolommen gezet die het zouden moeten zijn na het omdraaien.
 

Bijlagen

  • Omdraaien2.xlsm
    314,2 KB · Weergaven: 38
Wat is er volgens jou niet goed aan de code?
 
HSV, de code

Dim sv
sv = Range("G198:R2797")
Range("G198").Resize(UBound(sv), 12) = Application.Index(sv, Application.Transpose([transpose(row(1:2604))]), Array(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1))



haalt formules op regels 293,294,295,296,297, 393,394,395,396,397, etc eruit.
 
Hier niet hoor, ze staan er nog netjes (weliswaar meegedraaid).
Code:
sv = Range("G198:R2797").formula

zoals in je bestand.
 
Laatst bewerkt:
He, jammer, kolommen worden nu wel omgedraaid, formule staat er nog, maar de formules verhuizen niet mee.

Bijv kolom G293 = som van G200:G292 --> kolom wordt R, maar R293 blijft dan som G200:G292 en veranderd niet in som R200:R292?
 
Misschien moet je eens nodig aan de bril.
 
Heb je het linkje gelezen? Een bijna leeg bestand met ergens wat formules? Als je wilt dat de formules correct meeverhuizen dan zal je deze kolom afhankelijk moeten maken.
bv
Code:
=SUM(OFFSET(INDIRECT(ADDRESS(ROW()-93;COLUMN()));;;92))
 
Lezen of schrijven is een kunst.

He, jammer, kolommen worden nu wel omgedraaid, formule staat er nog, maar de formules verhuizen niet mee.

Bijv kolom G293 = som van G200:G292 --> kolom wordt R, maar R293 blijft dan som G200:G292 en veranderd niet in som R200:R292?

De formules verhuizen prima mee.
Zoals jij het nu presenteert blijven de formules verwijzen naar de index van de kolom waarin die staat.
En of dat juist is zullen we vernemen aan de schrijfkunst van Peter.
 
Heren VBA architecten, ik ben jullie helemaal kwijt :). En helemaal eens dat mijn schrijfkunsten niet de hoofdprijs verdienen. Met mijn beperkte kennis heb ik met hulp van jullie al heel veel mooie dingen gemaakt. Bedankt daarvoor.

Ik ga nog een poging wagen, met een bijgevoegd bestand.
Kolommen in bereik G198:R2799 moeten omgedraaid worden met formules. Kolom G198:G2799 moet naar R198:R2799 etc.
In regel 293,393,493,593 etc staan optelformules, als bijv. G293 de optelling is van G200:G292; Als deze naar kolom R verhuist, dan zou de formule ook mee moeten veranderen in op telling van R200:R292.

Ik hoop dat jullie snappen wat ik bedoel en ook nog een poging willen wagen?

Alvast bedankt.
 

Bijlagen

  • Omdraaien3.xlsm
    225,2 KB · Weergaven: 38
Ik weet al waarom het niet werkt; Er zit geen macro in het bestand.
 
En als je de formule van @VenA op die plaatsen zet, wat scheelt er dan nog aan?
 
je bedoelt "=SUM(OFFSET(INDIRECT(ADDRESS(ROW()-93;COLUMN()));;;92))"?
Ik weet echt niet hoe deze te gebruiken?
 
Code:
=som(verschuiving(indirect(adres(rij()-93;kolom()));;;92))
 
Het zegt me helemaal niks. Zou je 'm willen toepassen in het bestand omdraaien4 en deze willen toevoegen?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan