Avatar billede fojensen Nybegynder
02. marts 2014 - 13:51 Der er 4 kommentarer og
1 løsning

2 simple Makro'er

Jeg sidder og leger med et par ret simple Makro'er
Right() der indsætter et antal celler og rykker indholdet af rækken til højre. Den virker fint.

Sub Right()
' Skubber celler x antal celler til højre
'
' Genvejstast:Ctrl+r
Dim NoOfCells As Integer

' får antal pladser fra inputbox
NoOfCells = InputBox("Indtast antal pladser der skal flyttes", "Hvor mange celler skal der flyttes", 24)

    For i = 1 To NoOfCells ' looper det ønskede antal gange og flytter èn plads af gangen - det ser lidt blæret ud
    Selection.Insert Shift:=xlToRight
    Next i
End Sub



På samme måde forsøger jeg at lave Sub-proceduren Left() der skal fjerne et antal celler og rykke det resterende indhold af rækken til venstre.
Problemet er ganske enkelt at der tilsyneladende ikke sker det en sk**. der er ikke noget der flytter sig.


Sub Left()
' trækker celler x antal pladser til venstre
' Genvejstast:Ctrl+l
Dim StartCol As Integer, EndCol As Integer, NoOfCells As Integer, ActiveRow As Integer

' får antal pladser fra inputbox
NoOfCells = InputBox("Indtast antal pladser der skal flyttes", "Hvor mange celler skal der flyttes", 24)

StartCol = ActiveCell.Column ' registrerer startkolonnen som udgangspunktet
ActiveRow = ActiveCell.Row ' registrerer hvilken række vi arbejder i
EndCol = StartCol - NoOfCells ' beregner hvilken kolonne vi vil slutte i

  If EndCol < 1 Then ' Hvis slut-kolonnen-nummer nu er blevet udregnet til under 1, så vil der opstå en fejl
        MsgBox EndCol ' udskriver msgbox hvis bruger vil slette flere celler end der er kolonner til
    EndCol = 1 ' så tilretter vi kolonnenummeret til 1
  End If
NoOfCells = EndCol - StartCol ' vi genberegner NoOfCells fordi den kan have ændret sig sammen med EndCol
   
  For i = 1 To NoOfCells
    Cells(ActiveRow, EndCol).Select
    Selection.Delete Shift:=xlToLeft
  Next i
 
'Cells(0, 1).Select ' line kun brugt til at fremprovokere fejl, så jeg med debugger kan aflæse værdier i div. variabler
End Sub


Hjælp - jeg kan ikke finde fejlen...
Avatar billede supertekst Ekspert
02. marts 2014 - 14:05 #1
NoOfCells = EndCol - StartCol ' vi genberegner NoOfCells fordi den kan have ændret sig sammen med EndCol

Ër skyld i det at for-sætningen ikke udføres.

Prøv at steppe gennem koden med F8 - så kan du følge forløb og værdier.
Avatar billede fojensen Nybegynder
02. marts 2014 - 14:46 #2
Det var godt spottet superhjælper supertekst.
Jeg byttede de to parametre om, så jeg ikke endte ud med et minus-resultat.
NoOfCells = StartCol - EndCol ' vi genberegner NoOfCells fordi den kan have ændret sig sammen med EndCol

og nu spiller den...

Jeg mangler lige et "rigtigt" svar, for at kunne tildele dig de udlovede points...
Avatar billede supertekst Ekspert
02. marts 2014 - 14:50 #3
Fint - det får du her..
Avatar billede fojensen Nybegynder
02. marts 2014 - 15:14 #4
@supertekst
Tak for hjælpen, og for dig engagement ...
Avatar billede supertekst Ekspert
02. marts 2014 - 16:29 #5
Selv tak..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester