/ Forside / Teknologi / Administrative / MS-Office / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Excel VBA 2003
Fra : Mike Johnson


Dato : 21-04-05 10:36

Hej

Er det nogen som kan sige mig hvordan man bevæger sig i et navne
område ?

Jeg kunne godt tænke mig at have en lykke som "går" fra 1. celle til
den sidste celle (range).

Jeg har markeret et område og givet det navnet "data"


Dim AreaCells As Range

Set AreaCells = Range("Data")

AreaCells.Select

Men når jeg fx. bruger kommandoen :

ActiveCell.Offset(1, 0).Select

Så forsvinder markeringen af området.

Det som ønskes er at gå alle celler i området igennem, så når man er
nået til nederste række, skal den gå op i øverste række i næste
kolonne.

Håber at det er nok til at I forstår

På forhånd tak

MJ


 
 
Jørgen Bondesen (21-04-2005)
Kommentar
Fra : Jørgen Bondesen


Dato : 21-04-05 12:47

Prøv dette:

Option Explicit


'----------------------------------------------------------
' Procedure : testROW
' Date : 20050421
' Author : Joergen Bondesen
' Purpose : Select cell in Range, row by row.
'----------------------------------------------------------
'
Sub testROW()

Dim AreaCells As Range
Set AreaCells = Range("Data")

Dim cell As Range
For Each cell In AreaCells
cell.Select
Next cell

Set AreaCells = Nothing
End Sub


'----------------------------------------------------------
' Procedure : testCOLUMN
' Date : 20050421
' Author : Joergen Bondesen
' Purpose : Select cell in Range, column by column
'----------------------------------------------------------
'
Sub testCOLUMN()

Dim AreaCells As Range
Set AreaCells = Range("Data")

Dim x As Long
For x = 1 To AreaCells.Columns.Count
Dim cell As Variant
For Each cell In AreaCells.Offset(0, x - 1) _
.Resize(AreaCells.Rows.Count, 1)

cell.Select
Next cell
Next x

Set AreaCells = Nothing
End Sub



--
Med venlig hilsen

Jørgen Bondesen


"Mike Johnson" <powerviper4@hotmail.com> wrote in message
news:gnse615s6hskbo9oca22iqnmnibvlgpg5r@4ax.com...
> Hej
>
> Er det nogen som kan sige mig hvordan man bevæger sig i et navne
> område ?
>
> Jeg kunne godt tænke mig at have en lykke som "går" fra 1. celle til
> den sidste celle (range).
>
> Jeg har markeret et område og givet det navnet "data"
>
>
> Dim AreaCells As Range
>
> Set AreaCells = Range("Data")
>
> AreaCells.Select
>
> Men når jeg fx. bruger kommandoen :
>
> ActiveCell.Offset(1, 0).Select
>
> Så forsvinder markeringen af området.
>
> Det som ønskes er at gå alle celler i området igennem, så når man er
> nået til nederste række, skal den gå op i øverste række i næste
> kolonne.
>
> Håber at det er nok til at I forstår
>
> På forhånd tak
>
> MJ
>



Mike Johnson (21-04-2005)
Kommentar
Fra : Mike Johnson


Dato : 21-04-05 13:06

Takker.

Jeg prøver det


On Thu, 21 Apr 2005 13:47:21 +0200, "Jørgen Bondesen"
<bondesen@cool.dk> wrote:

>Prøv dette:
>
>Option Explicit
>
>
>'----------------------------------------------------------
>' Procedure : testROW
>' Date : 20050421
>' Author : Joergen Bondesen
>' Purpose : Select cell in Range, row by row.
>'----------------------------------------------------------
>'
>Sub testROW()
>
> Dim AreaCells As Range
> Set AreaCells = Range("Data")
>
> Dim cell As Range
> For Each cell In AreaCells
> cell.Select
> Next cell
>
> Set AreaCells = Nothing
>End Sub
>
>
>'----------------------------------------------------------
>' Procedure : testCOLUMN
>' Date : 20050421
>' Author : Joergen Bondesen
>' Purpose : Select cell in Range, column by column
>'----------------------------------------------------------
>'
>Sub testCOLUMN()
>
> Dim AreaCells As Range
> Set AreaCells = Range("Data")
>
> Dim x As Long
> For x = 1 To AreaCells.Columns.Count
> Dim cell As Variant
> For Each cell In AreaCells.Offset(0, x - 1) _
> .Resize(AreaCells.Rows.Count, 1)
>
> cell.Select
> Next cell
> Next x
>
> Set AreaCells = Nothing
>End Sub


Jørgen Bondesen (21-04-2005)
Kommentar
Fra : Jørgen Bondesen


Dato : 21-04-05 15:07

Hej Mike.

Velbekomme.
Du er velkommen tilbage.

I
Sub testCOLUMN() står der
Dim cell As Variant
skulle have været:
Dim cell As Range

--
Med venlig hilsen

Jørgen Bondesen


"Mike Johnson" <powerviper4@hotmail.com> wrote in message
news:ro5f615s6hskbo9oca22iqnmnibvlgpge2@4ax.com...
> Takker.
>
> Jeg prøver det


--
I am using the free version of SPAMfighter for private users.
It has removed 27 spam emails to date.
Paying users do not have this message in their emails.
Try www.SPAMfighter.com for free now!



Mike Johnson (22-04-2005)
Kommentar
Fra : Mike Johnson


Dato : 22-04-05 06:48

Tak

Jeg fik det til at virke. Endnu engang tak for hjælpen

Har dog lige endnu et spg

Pt. skal jeg starte makroen vha. en knap, men kunne godt tænke mig at
den blev triggeret automatisk når man har rettet noget (eller måske
bare ved at checke værdien i en celle):

Fx.

=if(D17>500;testCOLUM();"")

Men når jeg prøver ovenstående, får jeg fejlen at "navnet er ugyldigt"

Mvh MJ


On Thu, 21 Apr 2005 16:06:40 +0200, "Jørgen Bondesen"
<bondesen@cool.dk> wrote:

>Hej Mike.
>
>Velbekomme.
>Du er velkommen tilbage.
>
>I
>Sub testCOLUMN() står der
>Dim cell As Variant
>skulle have været:
>Dim cell As Range
>
>--
>Med venlig hilsen
>
>Jørgen Bondesen
>
>
>"Mike Johnson" <powerviper4@hotmail.com> wrote in message
>news:ro5f615s6hskbo9oca22iqnmnibvlgpge2@4ax.com...
>> Takker.
>>
>> Jeg prøver det


Jørgen Bondesen (22-04-2005)
Kommentar
Fra : Jørgen Bondesen


Dato : 22-04-05 11:19

elbekomme.

Nedenstående skal IKKE i MODULE men ind i det ARK hvor du har din tabel.
Marker ark - højreklik på fanen - Vis koder. Indsæt nedenstående, dvs. en af
de 2.
Jeg ville bruge den første.

Bemærk iøvrige, at du i arket øverst til højre har en "masse" events som du
kan se nærmere på, når tiden er moden.


Option Explicit

'Ved ændring af celler i range: DATA
Private Sub Worksheet_Change(ByVal Target As Range)

'Column
Dim AreaCells As Range
Set AreaCells = Range("Data")

If Intersect(Target, AreaCells) Is Nothing Then Exit Sub

Dim x As Long
For x = 1 To AreaCells.Columns.Count
Dim cell As Range
For Each cell In AreaCells.Offset(0, x - 1) _
.Resize(AreaCells.Rows.Count, 1)

cell.Select
Next cell
Next x

Set AreaCells = Nothing

' 'Row
' Dim AreaCells As Range
' Set AreaCells = Range("Data")
'
' If Intersect(Target, AreaCells) Is Nothing Then Exit Sub
'
' Dim cell As Range
' For Each cell In AreaCells
' cell.Select
' Next cell
'
' Set AreaCells = Nothing

End Sub


'Ved markering af celle i range: DATA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Column
Dim AreaCells As Range
Set AreaCells = Range("Data")

If Intersect(Target, AreaCells) Is Nothing Then Exit Sub

Application.EnableEvents = False
Dim x As Long
For x = 1 To AreaCells.Columns.Count
Dim cell As Range
For Each cell In AreaCells.Offset(0, x - 1) _
.Resize(AreaCells.Rows.Count, 1)

cell.Select
Next cell
Next x
Application.EnableEvents = True

Set AreaCells = Nothing

' 'Row
' Dim AreaCells As Range
' Set AreaCells = Range("Data")
'
' If Intersect(Target, AreaCells) Is Nothing Then Exit Sub
'
' Application.EnableEvents = False
' Dim cell As Range
' For Each cell In AreaCells
' cell.Select
' Next cell
' Application.EnableEvents = true
'
' Set AreaCells = Nothing

End Sub


--
Med venlig hilsen
Jørgen Bondesen


"Mike Johnson" <powerviper4@hotmail.com> wrote in message
news:0p3h615e7a3h9rgo2ni78pdqfhqrl41k48@4ax.com...
> Tak
>
> Jeg fik det til at virke. Endnu engang tak for hjælpen
>
> Har dog lige endnu et spg
>
> Pt. skal jeg starte makroen vha. en knap, men kunne godt tænke mig at
> den blev triggeret automatisk når man har rettet noget (eller måske
> bare ved at checke værdien i en celle):
>
> Fx.
>
> =if(D17>500;testCOLUM();"")
>
> Men når jeg prøver ovenstående, får jeg fejlen at "navnet er ugyldigt"
>
> Mvh MJ



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste