Gå til innhold

Legge til rad, etter siste rad med makro


Anbefalte innlegg

Videoannonse
Annonse

Du er bra gjerrig på informasjon. Men hvis vi snakker Excel og du kan implementere selv, så er utgangspunktet:

 

Sub LeggTilKunde()

Dim R As Long

R = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

Sheets(1).Cells(R, 1).Value = "Kundenr"

Sheets(1).Cells(R, 2).Value = "Navn"

Sheets(1).Cells(R, 3).Value = "Mobil"

End Sub

 

HTH. Beste hilsen Harald

Lenke til kommentar

Sub LeggTilKunde()

Dim R As Long

R = 7

Sheets(1).Rows( R ).Insert shift:=xlDown

Sheets(1).Cells(R, 1).Value = "Kundenr"

Sheets(1).Cells(R, 2).Value = "Navn"

Sheets(1).Cells(R, 3).Value = "Mobil"

End Sub

 

Når det gjelder farger, kanter etc.; spill inn en makro mens du utfører det manuelt så har du et godt utgangspunkt. Det er såpass mange parametre med bordere at en generell demo ikke er tilstrekkelig.

 

HTH. Beste hilsen Harald

Endret av Harald Staff
Lenke til kommentar

Tusen takk:)

 

Liker ikke å spørre om så mye på rad, men har ingen interesse i å sette meg inn i makro. Dersom du kunne ha laget en makro som sletter en kolonne hadde du vært en knupp. F.eks når man legger til en kolonne med makroen du laget i forrige post, så skriver den en "slettKunde" makro i celle R,4. Denne makroen sletter raden den er skrevet ut i.

Endret av MsFoster
Lenke til kommentar

Skjønner. Da blir det sånn:

 

Sub LeggTilKunde()

Dim X As Object

Dim R As Long

Dim TheCell As Range

R = 7

Sheets(1).Rows( R ).Insert shift:=xlDown

Sheets(1).Cells(R, 1).Value = "Kundenr"

Sheets(1).Cells(R, 2).Value = "Navn"

Sheets(1).Cells(R, 3).Value = "Mobil"

Set TheCell = Cells(R, 4)

Set X = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _

TheCell.Left, TheCell.Top, TheCell.Width, TheCell.Height)

X.Select

Selection.Characters.Text = "Slett kunde"

X.OnAction = ThisWorkbook.Name & "!slettKunde"

Set X = Nothing

Cells(R, 1).Select

End Sub

 

Sub slettKunde()

Dim X As Object

Dim R As Long

Set X = Sheets(1).Shapes(Application.Caller)

'MsgBox X.Top

For R = 1 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row

If Abs(Sheets(1).Cells(R, 1).Top - X.Top) < 2 Then

If MsgBox("Du er sikker på at vi skal slette rad " & _

R & "?", vbYesNo) = vbNo Then Exit Sub

X.Delete

Rows( R ).Delete

Exit Sub

End If

Next

End Sub

 

HTH. beste hilsen Harald

Endret av Harald Staff
Lenke til kommentar

hehe, fant ut av at det kunne være greit å kunne litt om det hvertfall.

Driver med webprogrammering, men fikk i oppgave på skolen å lage makro sider. Noe jeg aldri har vært borti før.

 

Dersom jeg kan PHP,HTML,CSS,MySQL og litt JS, bør jeg klare meg å sette meg greit inn i detta, eller er det noe ekstraordinært?:p

Lenke til kommentar

hei igjen!

Et lite problem med makroen, den legger til kun på raden R er definert.

Jeg satte R = 9, noe som fører til at den kun legger til en rad på rad 8 hver gang, og heller er det ikke mulig å slette annet enn den første raden man legger til.

 

Eneste endring jeg gjorde var å legge til noen celler, slik at det gikk fra R,1 til R,5. da satte jeg TheCell = cells(R,6).

Mulig dette har noen innvirkning, men etter hva jeg kunne lese utifra makroen, så ser det ikke ut til at det blir referert til noen R i senere tid.

Lenke til kommentar

hmm, glem det jeg sa ang mellom rad 7 og 8. de skal bli skrevet ut etter rad 7, men det er forsåvidt i ordenl. Det eneste problemet nå, er at den nyeste blir skrevet i angitt R verdi.

eks:

 

en

to

 

legger jeg til en til etter det:

 

en

tre

to

 

en

fire

tre

to

 

Der har du feilen klart for deg:)

Takk som fremdeles prøver.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...