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

verwijzing met constante tussenruimte van 7 ??

Status
Niet open voor verdere reacties.

gino2luigi

Gebruiker
Lid geworden
27 nov 2008
Berichten
12
hallo mensen.
ik heb een probleempje
ik wil namelijk dat in cel b1 gegevens van a1 komen te staan
en dan b2 gegevens van a 7
nou kan je dit dus gewoon doen door er een = te plaatsen maar ik moet dit kunnen doortrekken (aangezien het om meer dan 3000 bestanden gaat) maar als je dat doet komt in b2 gegevens van a2

wie kan mij helpen?

alvast bedankt


[ a ] ______________ ____ [ b ] __________ [ c ] enz......
1 naam ________________ 1= a1
2 adres ________________ 2= a 7
3 plaats ________________ 3
4 tel nmmr________________ 4
5 E-mail
6 blanco
7 niewe naam
 
Laatst bewerkt:
gino2luigi,

Zo te zien gaat het om een adresbestand.
Waarom maak je niet een Userform die de gegevens wegschrijft en weer ophaalt als je ze nodig heb?

je kan ook denk ik;
=A1
=A7
De 2 selecteren en doortrekken
 
Laatst bewerkt:
Bekijk bijlage envo.xlssorry misschien had ik erbij moeten vermelden dat ik gwn redelijk overweg kan met exel maar niet gespecialiseerd ofzo
dus...
wat is een userform:o

het is idd een adressen bestand
maar kan de adressen alleen als volgt kopieren

b.naam
adres
postcode + plaats
tel

dus niet individueel per regel
daarom wou ik ze dus gewoon zo in het bestand plakken
en door verwijzing automatisch doorgevoerd word en wnnr ik klaar ben met de gegevens verwijder ik alles uit kolom A

weet jij iets beters dan hoor ik het graag :D

heb al gdn wat je zei lukt niet

ik heb bestandje bij gedaan voor beter beeld
 
Laatst bewerkt:
Code:
=ALS(EN(ISLEEG(A1);ISLEEG(A3));A2;"")
etc levert je een groot aantal lege regels op, maar die zijn met sorteren weg te schoffelen.
 
Wat dacht je van transponeren?
Code:
Sub Macro1()
    y = 2
    For i = 1 To Rows.Count
    Range("A" & i & ":A" & i + 6).Copy
    Range("F" & y).Select
    Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=True
    i = i + 6: y = y + 1
    Next
End Sub

Cobbe
 
Met onderstaande code worden de gegevens in de kolommen geplaatst.
Code:
Sub Macro1()
Dim lSchrijfRij As Long
Dim lTeller As Long
Dim lLaatsteRij As Long
    lSchrijfRij = 2
    lLaatsteRij = Worksheets(1).Range("A65536").End(xlUp).Row - 5
    For lTeller = 2 To lLaatsteRij
        Range("F" & lSchrijfRij).Value = Range("A" & lTeller).Value
        Range("A" & lTeller + 2 & ":A" & lTeller + 6).Copy
        Range("G" & lSchrijfRij).PasteSpecial Paste:=xlAll,  Transpose:=True
        lTeller = lTeller + 6:  lSchrijfRij = lSchrijfRij + 1
    Next
    Application.CutCopyMode = False
End Sub

@Cobbe.
Het idee is goed, maar als je Rows.Count gebruikt wordt er in alle rijen gekeken t/m 65536. Verder gelieve geen Select en Selection gebruiken.

Met vriendelijke groet,


Roncancio
 
@Roncancio

Jouw idee is ook goed :p alleen best geen lussen gebruiken in Excel...

En:lTeller = lTeller + 6 kan ook met een Step in de For lijn.

Wigi
 
En als je toch liever voor een formule gaat:
Code:
=VERSCHUIVING(A$1;(RIJ()-1)*6;0)
 
Het bewerken van een matrix(array) gaat sneller dan het lezen/schrijven naar een werkblad.

Code:
sub intern()
  sq=sheets(1).usedrange
  sheets(1).usedrange.clearcontents
  for j= 1 to ubound(sq) step 6
    c1=""
    for jj=0 to 4
      c1=c1 +sq(j+jj,1) & "|"
    next
    c0=c0 & c1 & vbcr
  next
  sq=split(c0,"|" & vbcr)
  for j=0 to ubound(sq)
    sheets(1).cells(j+1,1).resize(,5)=split(sq(j),"|")
  Next
End sub
 
Laatst bewerkt:
En:lTeller = lTeller + 6 kan ook met een Step in de For lijn.

Dit is een "beetje duum" van mij.
Dat ik daar overheen heb gekeken.:o

Bedankt voor de opmerkzaamheid.:thumb:

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Wat dacht je van transponeren?
Code:
Sub Macro1()
    y = 2
    For i = 1 To Rows.Count
    Range("A" & i & ":A" & i + 6).Copy
    Range("F" & y).Select
    Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=True
    i = i + 6: y = y + 1
    Next
End Sub

Cobbe
het eerste gegeven hoeft niet getransponeerd te worden
transponeren kan direkter:

Code:
Sub Macro1()
  For i = 1 To Rows.Count step 6
    Cells(i, 2).Resize(, 4) = Application.WorksheetFunction.Transpose(Cells(i + 1, 1).Resize(4))
  Next
  columns(2).specialcells(xlcelltypeblanks).entirerow.delete
End Sub
 
Laatst bewerkt:
jongens
echt heel erg bedankt voor de hulp
maar jullie praten echt chinees voor me:o
transponeren?.....wth:shocked:
ik heb wel de formule geprobeerd die er tussen staat maar die werkt om de een of andere reden niet....:(

kan iemand dit mij in abn uit leggen?:D

danku
 
jongens
echt heel erg bedankt voor de hulp
maar jullie praten echt chinees voor me:o
transponeren?.....wth:shocked:
ik heb wel de formule geprobeerd die er tussen staat maar die werkt om de een of andere reden niet....:(

kan iemand dit mij in abn uit leggen?:D

danku

Ni hao,

Transponeren is niets anders dan reeksen die horizontaal staan, verticaal neer te zetten en andersom.
Bijv.:
A B C

Wordt dan

A
B
C

Zaijian,


Roncancio
 
:D XD Ni hao,

:eek: I C
transponeren
ty:thumb:

ok en die gegevens
waar precies moet ik dat invoeren?:o:p

teach me!!:cool:
oooh great excel masters:cool:;)
 
Ni hao,

Ga naar Extra - Macro - Visual Basic Editor.
Ga naar Invoegen - Module.
Kopieer daar de code van de macro in.

De macro kan je vanuit Excel selecteren via Extra - Macro - Macro's.

Ruguo ni you yi ge wenti ni gaosu wo.
Vert.: Als je een vraag hebt, dan vraag je het me maar
(Ik heb in Z.O. Azië gewoond, vandaar)

Met vriendelijke groet,


Roncancio
 
Ni hao, :D
blijft leuk om te zeggen:p

harstikke bedankt voor de hulp en uitleg:thumb:
ik d8 echt dat ik veel van excel wist:shocked: NOT:o

nogmaals bedankt:D:cool::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan