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

De inhoud van een Array naar verschillende , niet aansluitende, cellen wegschrijven

Status
Niet open voor verdere reacties.

ADvH

Gebruiker
Lid geworden
5 apr 2018
Berichten
39
Beste allen,

Ik schrijf records met gegevens naar een werkblad ("TblKlacht!b2:F2"). Bij het opvragen van dit 'record' moet dit naar verschillende cellen teruggeschreven worden werkblad KlOverzicht "b2", "b6", "e2", "e6", "a25".
Ik krijg het wel voor elkaar de gehele array vanaf 1 cell in z'n geheel weg te schrijven (zie hieronder), maar hoe schrijf ik het naar veerschillen cellen weg, ook met een array?

Kan iemand mij een beetje op weg helpen?

Alvast hartelijk dank,
Albert

Sub Test_Opvragen_Klacht()

Rec = Range("TblKlacht!b2:f2") 'in totaal 33 velden in de record, voor de test maar even 5 gebruikt
With Sheets("KlOverzicht")
.Cells(10, 10).Resize(, 5) = Rec 'deze schrijft de gehele array weg, dat gaat goed
End With

'feitelijk moet het weggeschreven worden naar "b2", "b6", "e2", "e6", "a25"

End Sub
 
Dan zul je met een lus elke waarde uit de matrix zelf moeten toewijzen aan een cel als er logica in zit. Omdat je 33 cellen wilt vullen, en ik er nu al geen logica in zie, zul je denk ik elke cel apart moeten invullen.
PHP:
Cells(2,2) = Rec(0)
Cells(6,2) = Rec(1)
en zo verder.
 
Beste OctaFish,

Ben een beetje late reactie, maar dank voor je bericht. Ik had een hoopje dat het ook via een Array kon. Ik heb het nu idd op jouw manier opgelost. Staat wat primitief in de code maar dat is niet anders :D.

Hartelijke groet Albert
 
Code:
Sub M_snb()
  sn = Range("TblKlacht!b2:f2") 
  sp = split("b2 b6 e2 e6 a25")

  With Sheets("KlOverzicht")
    for j=1 to ubound(sn,2)
      .range(sp(j-1)) = sn(1,j)
    next
  End With
End Sub
 
Laatst bewerkt:
Kleine correctie op #4

Code:
.range(sp([COLOR="#FF0000"]j-1[/COLOR])) = sn(1,j)

En dan werkt de code van SNB optima forma.
(Sorry SNB, hoop niet dat ik je hiermee verstoor...:))

Greetz/Excelbat
 
SNB en Excelbat,

Hartelijk dank, hier was ik naar op zoek!! Top!

Groet Albert
 
Het kan simpeler:

Code:
Sub M_snb()
  For j = 1 To 10
    Sheets("KlOverzicht").Range("C1,E1,G1,I1,K1,M1,O1,Q1,S1,U1").Areas(j) = Sheets("TblKlacht").Cells(2, j).Value
  Next
End Sub
 
Laatst bewerkt:
Thanx SNB,

Altijd weer leuk om te proberen zo'n code te doorgronden.

Greetz/Excelbat
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan