Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cellen wisselen

707 views
Skip to first unread message

Arjan

unread,
Aug 29, 2002, 7:18:29 AM8/29/02
to
Is er een functie of weet iemand een macro waarmee, als ik
2 cellen selecteer, de inhoud gewisseld word?


Remco

unread,
Aug 29, 2002, 8:13:22 AM8/29/02
to
Arjan,

Dit kan je doen door bijvoorbeeld de volgende macro.
Hierbij is het zo dat de waarden uit c16 en d16 dienen te
worden gewisseld.

Gebruik hiervoor de volgende macro:

Sub wissel()
Dim cel1 As String
Dim cel2 As String

cel1 = Range("c16")
cel2 = Range("d16")

Range("c16") = cel2
Range("d16") = cel1


End Sub

Succes ermee.
Groeten,
Remco

>.
>

Ber Visser

unread,
Aug 29, 2002, 8:30:34 AM8/29/02
to
Arjan, klik met je rechter muisknop op het desbetreffende blad en
plak onderstaande macro in het rechter vak:

Private Sub Worksheet_SelectionChange _
(ByVal Target As Range)
Dim a As String
Dim b As String
If Selection.Cells.Count = 2 Then
a = Selection.Cells(1).Value
b = Selection.Cells(2).Value
Selection.Cells(1) = b
Selection.Cells(2) = a
End If
End Sub


--
Met vriendelijke groeten,
Ber Visser

"Arjan" <arjan....@gepex.ge.com> schreef in bericht
news:a8af01c24f4d$cd895200$a4e62ecf@tkmsftngxa06...

Theo

unread,
Aug 29, 2002, 8:59:12 AM8/29/02
to
Hallo Arjan,
Op de site www.asap-utilities.nl kun je gratis een excel
add-in downloaden met gigantisch veel extra mogelijkheden.
Een daarvan is het omwisselen van de inhoud van 2 of meer
cellen zonder ingewikkelde macro's; gewoon de betreffende
cellen selecteren, opdracht aanklikken en bevestigen:
klaar. Veel succes ermee.
Groet'n,
Theo

¤ ¤ WEK ¤ ¤

unread,
Aug 30, 2002, 4:55:44 AM8/30/02
to
Ik heb dit ook zitten proberen, maar wat blijkt.
Selecteer je 2 cellen naast elkaar dan gaat het goed.
Selecteer je 2 cellen op verschillende rijen, dan wordt de waarde van de
linker één positie te laag ingevuld.
Ra, ra.. hoe kan dit ??

M.vr.gr.

Werner

Ber Visser <viss...@pandora.be> schreef in berichtnieuws
O6NP9e1TCHA.2652@tkmsftngp12...

J.G. Kok

unread,
Aug 30, 2002, 9:25:56 AM8/30/02
to
WEK,

Dat heeft er mee te maken dat de code wordt uitgevoerd op het moment dat je
een tweede cel kiest en als je dat bijvoorbeeld doet met de muis met
ingedrukte controltoets dan wordt een tweede gebied geselecteerd. "Selectie"
houdt vervolgens alleen rekening met het eerste gebied (dat je hebt
geselecteerd) en ziet Cells(2) als de cel onder Cells(1). De wisseling is
dan ook tussen de eerst gekozen cel en die eronder. De tweede gekozen cel
doet aan de wisseling niet mee.

Vermoedelijk heeft Ber dit alleen als demonstratievoorbeeld
geplaatst en dat werkt.

Een aantal aanpassingen, maar daarmee uiteraard niet persé foutloos, volgt
hieronder.

Onderstaande macrocode kun je in een aparte module plaatsen en bijvoorbeeld
aan een sneltoets hangen.
Deze wisselt twee waarden ook als ze niet direct naast of onderelkaar staan
(er is dan sprake van meerdere gebieden of Areas).
Bovendien wordt de celopmaak voor wat betreft de notatie (NumberFormat) mee
gewisseld. Dat is bijvoorbeeld van belang als je datums wisselt met gewone
getallen.
Als er formules in de cellen staan wordt er niet gewisseld.
Om de code hier beter, zonder dat regels al te vaak worden afgebroken, te
kunnen plaatsen, heb ik de leesbaarheids inspringingen grotendeels
weggelaten.

Private Sub WaardenWisselen()
Dim a As Variant
Dim aL As Variant
Dim msg As String


If Selection.Cells.Count = 2 Then

If Selection.Areas.Count = 1 Then
'in geval van aaneengesloeten cellen
'als er formules staan wordt er niet gewisseld
If (Selection.Cells(1).Formula = CStr(Selection.Cells(1)) Or _
IsNumeric(Selection.Cells(1).Formula)) And (Selection.Cells(2).Formula = _
CStr(Selection.Cells(2)) Or IsNumeric(Selection.Cells(2).Formula)) Then
a = Selection.Cells(1).Value
aL = Selection.Cells(1).NumberFormat
Selection.Cells(1) = Selection.Cells(2).Value
Selection.Cells(1).NumberFormat = Selection.Cells(2).NumberFormat
Selection.Cells(2) = a
Selection.Cells(2).NumberFormat = aL
Else
msg = "De selectie bevat formules. Er wordt niet gewisseld."
End If
Else
'in geval van niet aaneengesloten cellen
If (Selection.Areas(1).Formula = CStr(Selection.Areas(1)) Or _
IsNumeric(Selection.Areas(1).Formula)) And (Selection.Areas(2).Formula = _
CStr(Selection.Areas(2)) Or IsNumeric(Selection.Areas(2).Formula)) Then
a = Selection.Areas(1).Value
aL = Selection.Areas(1).NumberFormat
Selection.Areas(1) = Selection.Areas(2).Value
Selection.Areas(1).NumberFormat = Selection.Areas(2).NumberFormat
Selection.Areas(2) = a
Selection.Areas(2).NumberFormat = aL
Else
msg = "De selectie bevat formules. Er wordt niet gewisseld."
End If
End If
Else
msg = "Het aantal geselecteerde cellen en/of gebieden is ongelijk aan twee."
End If
If Len(msg) > 0 Then
MsgBox msg, vbInformation, "Waarden wisselen"
End If
End Sub

't Is wel een heel verhaal geworden, maar ja ....

Jan


sande...@gmail.com

unread,
Jul 28, 2017, 9:32:38 AM7/28/17
to
Op donderdag 29 augustus 2002 13:18:29 UTC+2 schreef Arjan:
> Is er een functie of weet iemand een macro waarmee, als ik
> 2 cellen selecteer, de inhoud gewisseld word?

Super laat antwoord maar dacht mocht je het nog nooit gevonden hebben ;)

7.4 Cellen omwisselen
Dit kan ook gewoon met toetsen en muis. Stel: we hebben in cellen naast elkaar
van A1:E1
[1][2][3][4][5]
© H. de Walle www.walmar.nl pagina 39
Selecteer [2], wijs op de zwarte rand en sleep de cel tussen (!) de [4] en de
[5] met de Shift toets ingedrukt. De muiswijzer ziet eruit als een halter.
Het resultaat wordt:
[1][3][4][2][5]
0 new messages