• 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.

Transponeren met cellen met verwijzingen

Status
Niet open voor verdere reacties.

PSVSupporter

Gebruiker
Lid geworden
13 aug 2009
Berichten
148
Vraag: Als je een rij met gegevens hebt, kun je die met kopieren/plakken speciaal transponeren naar een kolom.

Echter, nu heb ik b.v. in A5 een verwijzing naar A1, in B5 een verwijzing naar A2 en in C5 een verwijzing naar A3. Als ik deze cellen selekteer en transponeer naar naar A6 (A5 kan/mag niet van Excel), krijg ik hele andere verwijzingen.

Hoe krijg ik dit toch voor elkaar?
 
PSV supporter

De formule's absoluut maken. $ toevoegen
 
Mmm, niet echt een optie. Het voorbeeld mag dan 3 cellen zijn, het werkelijke bereik is ruim 300 cellen. Ga ik echt niet 1 voor 1 vast zetten met F4.
 
Hoy PSVSupporter,

Als de verwijzingen gewoon simpele verwijzingen zijn bv. =(a1) of =som(A1), dus geen ingewikkelde formules tussen de haakjes, kan je dit oplossen door Ctrl+f te gebruiken.
Eerst al je cellen selecteren --> dan Ctrl+F drukken --> vervolgens in "Zoeken naar :" het openingshaakje ( zetten --> dan ALT+V drukken --> vervolgens in "Vervangen door :" ($ zetten en ten slotte ALT+S drukken en al je geselecteerde cellen zijn dan gewijzigd naar bv. =($A1) of =som($A1). Daarna kan je gerust kopiëren en transformeren.

Grtjs.
Bowlingman
 
Laatst bewerkt:
Alleen maar work-arounds dus.
Kan ik de cellen ook eerst omzetten in tekst, kopieren/plakken en dan weer omzetten naar formules.
 
Waarom zou je de cellen eerst omzetten naar tekst en dan weer omzetten naar formules.
Zet anders de gebruikte formules eens mee in je berichtje
 
Zie het voorbeeld in het eerste bericht. Alleen dan 'iets' uitgebreider in mijn excel bestand.
Alles met F4 vastzetten is teveel werk. Door er eerst tekst van te maken, kun je het wel transponeren zonder dat de formules qua verwijzing wijzingen. Als je daarna er weer formules van maakt, heb ik het resultaat wat ik wil hebben.

Zocht eigenlijk naar een 'normale' manier om de cellen van horizontaal naar verticaal te verplaatsen, zonder dat de verwijzingen veranderen. Met transponeren kan dit niet.
 
Als je formules niet "absolute" zijn veranderen zij altijd als je ze kopieerd naar een andere cel.
Maar zoals ik heb uitgelegd met Crlt+F kan je al je selecteerde formules met één handeling wijzigen, alleen als je formules zonder haakjes zijn bv. =A1 moet je gewoon = vervangen door =$. Dit is eigenlijk de enige manier dat ik weet om dat te doen op een snelle en eenvoudige wijze.
 
Daar zet je alleen de kolom mee vast. De regel zal ook moeten.
Oftewel, mijn eigen work-around is voorlopig de beste. Eerst de regel omzetten in tekst, kopiëren en plakken/transponeren, omzetten naar standaard en dan zoek-vervang het = teken in een = teken.
 
Heb juist de test gedaan en zowel de kolommen als de rijen wijzigen niet. Ik werk wel met excel 2007
 
Hallo PSVSupporter,
Wanneer ik de cellen c9:f9 kopie/plakken speciaal "transponeren" doe krijg ik ook die verwijzing
Ik heb dus het volgende gedaan :
1° de cellen c9:f9 (met de formules =B2;=B3;=B4;=B5) geselecteerd
2° Crtl+f en in "zoeken naar" = geplaatst
3° Alt+v en in "vervangen door" =$ geplaatst
4° Alt+s en dan zijn al de geselecteerde cellen in één keer allemaal gewijzigd. Indien dit nu over 4 cellen of 1000 cellen gaat speelt geen enkele rol. (=$B2;=$B3;=$B4;=$B5)
Nu kan je gewoon de geselecteerde cellen kopie/plakken speciaal "transponeren" en plaatsen waar je maar wil, behalve uiteraard op de plaats waar de originele cellen staan.
Ik heb hier op mijn pc Uw aangepaste file staan, maar kan deze om de één of andere reden niet mee up-loaden.
Als je mij Uw e-mailadres laat weten zal ik het daar heen sturen.

Grtjs.
Bowlingman
 
Laatst bewerkt:
Gebaseerd op jouw vb. Pas de bereiken aan de werkelijke situatie.
Code:
Sub tst()
For Each cl In Range("B2:E6")
    If cl.HasFormula Then cl.Formula = "@" & cl.Formula
 Next
 Range("B2:E6").Copy
 Range("C9").PasteSpecial Transpose:=True
 Range("C9:G12").Replace "@=", "="
 Range("B2:E6").Replace "@=", "="
 Application.CutCopyMode = False
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan