/ 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
Automatering af tabeller
Fra : Henrik Hougaard


Dato : 06-09-02 08:36

I forbindelse med at vore sekretærer skal lave en del talopstillinger i
tabeller vil jeg gerne kunne automatisere deres arbejde med nogle makroer
der:

1. Erstatter tryk på numerisk "," med et "." i stedet (dvs sætter et
tusindpunktum i et tal)

2. Ved indtastning af tal i en celle skal der automatisk blive sat et
tusindpunktum (ligesom man kan i Excel ved at vælge dette under format på
Excel-cellen)

3. Udskifte handlingen ved tryk på ENTER i en celle (laver en ekstra linie i
cellen) med en funktion, der i stedet giver en ny række i taballen. Helt
smart ville det være, hvis et ENTER-tryk i cellerne i en række flytter til
næste celle til højre, men hvis man er i sidste celle i rækken laves i
stedet en ny række.

4. En funktion, der kan sammentælle en kolonne i tabellen og skrive
resultatet i den celle man står i (Words egen sammentælling i tabeller er
meget u-brugervenlig)

5. En funktion, der kan flytte tallene i en kolonne til kolonnen til højre
og forinden lige dividere dem med 1000.

Jeg forestiller mig det hele lavet i makroen, men er lidt på bar bund.

Anyone ???

Henrik



 
 
Mads (06-09-2002)
Kommentar
Fra : Mads


Dato : 06-09-02 12:00


"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> wrote in message
news:3d785ad3$0$124$edfadb0f@dspool01.news.tele.dk...
> I forbindelse med at vore sekretærer skal lave en del talopstillinger i
> tabeller vil jeg gerne kunne automatisere deres arbejde med nogle makroer
> der:

Lidt ideer at arbejde med.

> 3. Udskifte handlingen ved tryk på ENTER i en celle (laver en ekstra linie
i
> cellen) med en funktion, der i stedet giver en ny række i taballen. Helt
> smart ville det være, hvis et ENTER-tryk i cellerne i en række flytter til
> næste celle til højre, men hvis man er i sidste celle i rækken laves i
> stedet en ny række.

Se mit svar om keybindings og knyt denne makro til Enter tasten

Sub NyEnterTast()

If Selection.Information(wdWithInTable) Then
If Selection.Information(wdEndOfRangeColumnNumber) =
Selection.Tables(1).Columns.Count Then
Selection.Tables(1).Rows.Add
Else
Selection.MoveRight unit:=wdCell
End If
Else
Selection.TypeText vbCr
End If
Selection.Collapse

End Sub


> 4. En funktion, der kan sammentælle en kolonne i tabellen og skrive
> resultatet i den celle man står i (Words egen sammentælling i tabeller er
> meget u-brugervenlig)

Denne makro kan måske hjælpe

Sub SumFunktion()

Dim I As Integer
Dim Sum As Single
Dim Kol As Integer
Kol = Selection.Information(wdEndOfRangeColumnNumber)
Sum = 0
With Selection.Tables(1)
For I = 1 To Selection.Information(wdEndOfRangeRowNumber) - 1
Sum = Sum + Val(Left(.Cell(I, Kol).Range, Len(.Cell(I, Kol).Range) -
2))
Next I
Selection.TypeText Sum
End With

End Sub



Mvh Mads



Henrik Hougaard (06-09-2002)
Kommentar
Fra : Henrik Hougaard


Dato : 06-09-02 12:29

Tak for det fremsendte - det funker bare (også svaret i din anden mail).

En lille krølle på sum-funktionen, er at den ikke må medtælle celler der har
en under- eller overstregning (subtotaler). Det må være noget med en IF
sætning før leddet:

Sum = Sum + Val(Left(.Cell(I, Kol).Range, Len(.Cell(I, Kol).Range) -

Men jeg kan ikke lige se, hvordan man "aflæser" om cellen har en over- eller
understegning.

Nogen ide til dette?

Henrik

"Mads" <mads.knudsen@NOSPAMprivat.dk> skrev i en meddelelse
news:3d788abe$0$27659$edfadb0f@dspool01.news.tele.dk...
>
> "Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> wrote in message
> news:3d785ad3$0$124$edfadb0f@dspool01.news.tele.dk...
> > I forbindelse med at vore sekretærer skal lave en del talopstillinger i
> > tabeller vil jeg gerne kunne automatisere deres arbejde med nogle
makroer
> > der:
>
> Lidt ideer at arbejde med.
>
> > 3. Udskifte handlingen ved tryk på ENTER i en celle (laver en ekstra
linie
> i
> > cellen) med en funktion, der i stedet giver en ny række i taballen. Helt
> > smart ville det være, hvis et ENTER-tryk i cellerne i en række flytter
til
> > næste celle til højre, men hvis man er i sidste celle i rækken laves i
> > stedet en ny række.
>
> Se mit svar om keybindings og knyt denne makro til Enter tasten
>
> Sub NyEnterTast()
>
> If Selection.Information(wdWithInTable) Then
> If Selection.Information(wdEndOfRangeColumnNumber) =
> Selection.Tables(1).Columns.Count Then
> Selection.Tables(1).Rows.Add
> Else
> Selection.MoveRight unit:=wdCell
> End If
> Else
> Selection.TypeText vbCr
> End If
> Selection.Collapse
>
> End Sub
>
>
> > 4. En funktion, der kan sammentælle en kolonne i tabellen og skrive
> > resultatet i den celle man står i (Words egen sammentælling i tabeller
er
> > meget u-brugervenlig)
>
> Denne makro kan måske hjælpe
>
> Sub SumFunktion()
>
> Dim I As Integer
> Dim Sum As Single
> Dim Kol As Integer
> Kol = Selection.Information(wdEndOfRangeColumnNumber)
> Sum = 0
> With Selection.Tables(1)
> For I = 1 To Selection.Information(wdEndOfRangeRowNumber) - 1
> Sum = Sum + Val(Left(.Cell(I, Kol).Range, Len(.Cell(I,
Kol).Range) -
> 2))
> Next I
> Selection.TypeText Sum
> End With
>
> End Sub
>
>
>
> Mvh Mads
>
>



Mads (06-09-2002)
Kommentar
Fra : Mads


Dato : 06-09-02 13:02


"Henrik Hougaard" <fam.hougaard@nospam.stofanet.dk> wrote in message
news:3d789180$0$182$edfadb0f@dspool01.news.tele.dk...
> Tak for det fremsendte - det funker bare (også svaret i din anden mail).
>
> En lille krølle på sum-funktionen, er at den ikke må medtælle celler der
har
> en under- eller overstregning (subtotaler). Det må være noget med en IF
> sætning før leddet:
>
> Sum = Sum + Val(Left(.Cell(I, Kol).Range, Len(.Cell(I,
Kol).Range) -
>
> Men jeg kan ikke lige se, hvordan man "aflæser" om cellen har en over-
eller
> understegning.

prøv at lege med

MsgBox Selection.Borders(wdBorderTop).Visible


Mvh Mads




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste