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

nieuwe regel in factuuroverzicht

Status
Niet open voor verdere reacties.

HenkBakker

Gebruiker
Lid geworden
9 nov 2006
Berichten
164
In ons factuuroverzicht moet ruimte worden gemaakt voor nieuw facturen (die zijn al aangemaakt).
Hiervoor heb ik al geprobeerd een Macro op te nemen. Die werkt op zich wel; maar slechts voor één nieuwe regel...
In de bijlage het factuuroverzicht: Bekijk bijlage factuuroverzicht.xlsx
(Vanwege privacy-redenen heb ik rijen 4 t/m 42 tijdelijk gewist.)

Code:
Code:
Sub nieuwe_regel_in_factuuroverzicht()
'
' nieuwe_regel_in_factuuroverzicht Macro
'
' Sneltoets: Ctrl+b
'
    Rows("94:94").Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Range("B95").Select
    Application.CutCopyMode = False
    Selection.Hyperlinks(1).Address = "2018\2018-71406.xlsm"
    Selection.Hyperlinks(1).TextToDisplay = "2018-71406"
    Rows("95:95").Select
    Selection.Replace What:="2018-71405", Replacement:="2018-71406", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Rows("94:94").Select
End Sub

Hoe kan ik nu 'programmeren' dat een volgende regel wordt gekopieerd (want als ik nu de macro nogmaals uitvoer, wordt wederom rij 94 gekopieerd) rij 95 dus. Ik zoek dus iets als een teller: Rows("94:94")+1 dat resulteert in Rows("95:95").
Hetzelfde voor de ophoging van het factuurnummer in de Hyperlink. Dus iets als '2018-71406'+1 dat resulteert in de volgende factuur '2018-71407'.

Voor het wijzigen van de links in kolommen D t/m K heb ik een formule in A96 gezet, die nadat de macro weer wordt uitgevoerd in A97 staat.
 
Code:
cells(rows.count,1).end(xlup).offset(-2).resize(,19).copy
 
@HSV:
Dankjoewel veur joen hulp!
Allennig bin ik nait zo goud ien VBA en zoo.
Zol't meugelk weez'n om joen reeg'l in mien code zoo aan te paas'n, dat't waarkt?
Alvast bedankt!
 
Mooi geschreven Henk,

Ik heb geen idee of andere forumbezoekers er iets van begrijpen. :)

Test dit eens.

Code:
Sub nieuwe_regel_in_factuuroverzicht()
'q
' nieuwe_regel_in_factuuroverzicht Macro
'
' Sneltoets: Ctrl+b
Application.DisplayAlerts = False
  With Rows(Cells(Rows.Count, 1).End(xlUp).Row)
   .Insert xlDown, .Offset(-2).Copy
  End With
 With Cells(Rows.Count, 2).End(xlUp)
      .Offset(-1).Hyperlinks(1).Delete
      .Hyperlinks.Add .Offset(-1), .Offset(-2)
      .Offset(-1).Hyperlinks(1).Address = "2018\2018-" & CLng(Right(Replace(.Offset(-1).Hyperlinks(1).Address, ".xlsm", ""), 5)) + 1 & ".xlsm"
      .Offset(-1).Hyperlinks(1).TextToDisplay = "2018-" & CLng(Right(Replace(.Offset(-1).Hyperlinks(1).Address, ".xlsm", ""), 5))
 End With
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
 
@ HSV
Het lijkt wel West Vlaams
Even vertaalt.
Dank je wel voor uw hulp.
Alleen ben ik niet zo goed in VBA en zo.
Zou het mogelijk zijn om uw regels in mijn code aan te passen zodat het werkt?
 
@HSV/@Plongske: Ik zag een opmerking onder het bericht van HSV. In het Gronings...
Laat ik nu een Groninger zijn! Dus ik gaf het antwoord maar in dat dialect.

Ik heb nu de code van HSV vervanger door mijn code. Helaas, er gebeurt helemaal niets!

Wat heb ik fout gedaan?
 
Plaats het bestand eens Henk met je code.
Hier werkt het trouwens goed.
 
@ Henk ik vond het grappig en het was maar een reactie voor HSV bedoelt ,dat hij zich geen zorgen hoeft te maken voor de West Vlamingen.
 
Een .xlsx bestand kan geen code bevatten Henk.
Geeft niet, ...de code geplaatst in jouw bestand.
 

Bijlagen

  • factuuroverzicht.xlsb
    77,8 KB · Weergaven: 57
@HSV:
Beste Harry,

Allereerst mijn hartelijk dank voor de gedane arbeid! (Blijkbaar had ik niet het juiste bestand toegevoegd; mijn excuses!)
Helaas zitten er nog een paar kleine onvolkomenheden in (ik ben een mierenneuker cq Pietje Precies; sorry...)
1. Als ik CTRL + b intoets, wordt de geselecteerde cel vet. Het werkt wel als ik in de Macro's op Uitvoeren klik. Niet écht een probleem!
2. De rand van de cel in kolom B wordt niet overgenomen. Zeker geen probleem, kan ik handmatig snel aanpassen.
3. Als de macro wordt uitgevoerd worden de cellen in kolommen C t/m K niet goed vervangen. Het factuurnummer in de formules wordt niet goed opgehoogd. Kijk maar eens in cellen D95 t/m D98 van het nieuwe bestand.
Bekijk bijlage factuuroverzicht_HSV.xlsm
Zou dit kunnen komen omdat er wordt gekeken naar de formule in A99 (eerder A98; A97 enz.)? Deze blijft de waarde 2018-71407 behouden, en wordt niet opgehoogd.

Tot zover. Ik vind het nu al super! (Vooral omdat de link wel goed wordt bijgewerkt!) Maar als je dit laatste foutje nog wilt oplossen ben ik nog blijer!!!
 
Daar had ik ook niets mee gedaan, wist ik ook niet.
Vreemd dat de stippellijn met Ctrl+b niet meegenomen wordt.

Verwijder de rijen 92 t/m ??
Vanaf daar staat het nog goed.

Code:
Sub nieuwe_regel_in_factuuroverzicht()
'q
' nieuwe_regel_in_factuuroverzicht Macro
'
' Sneltoets: Ctrl+b
Application.DisplayAlerts = False
  With Rows(Cells(Rows.Count, 1).End(xlUp).Row)
   .Insert xlDown, .Offset(-2).Copy
  End With
 With Cells(Rows.Count, 2).End(xlUp)
      .Offset(-1).Hyperlinks(1).Delete
      .Hyperlinks.Add .Offset(-1), .Offset(-2)
      .Offset(-1).Hyperlinks(1).Address = "2018\2018-" & Split(.Offset(-1).Hyperlinks(1).Address, "-")(1) + 1 & ".xlsm"
      .Offset(-1).Hyperlinks(1).TextToDisplay = "2018-" & Split(.Offset(-1), "-")(1) + 2
      .Offset(-1, 1).Resize(, 6).Replace .Offset(-3).Formula, .Offset(-1).Formula
 End With
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
 
Laatst bewerkt:
Ik zou geen gereserveerde sneltoets(en) gebruiken om een macro te starten. <Ctrl> + b is standaard voor Bold (Vet).

Linkje: Sneltoetsen
 
Ik maak er liever helemaal geen gebruik van (een paar regelmatig voorkomende daargelaten).
Die hele reeks uit je hoofd te leren wordt toch nooit wat, en dan druk je voor je het weet op de verkeerde knoppen, en staat je beeldscherm ondersteboven. :rolleyes:
 
Inmiddels heb ik het met CTRL+q geprobeerd, maar dan gebeurt er helemaal niks.
Welk alternatief is er om een macro (snel) uit te laten voeren? Want steeds op Uitvoeren klikken is niet de oplossing.
 
Ik heb geen idee of Ctrl+q in het lijstje voorkomt, maar in de code zetten heeft niet veel zin als je het niet middels Alt F8 → Opties de q toevoegt.
 
Het is me gelukt om een knop te plaatsen, die de macro uitvoert!
Het vreemde is (misschien was dat eerder ook al zo, maar is het me niet opgevallen) dat de formules in de 'even' regels (die verwijzen naar een factuurnummer dat even is) wél goed worden gewijzigd, maar de oneven hebben allemaal de formule, die verwijst naar 2018-71401.
Hoe kan ik dat veranderen, dat het elke keer goed gaat?
 
Ik had de kolommen gewoon even geteld, maar je had er twee verborgen.
Code:
.Offset(-1, 1).Resize(, [COLOR=#ff0000]9[/COLOR]).Replace .Offset(-3).Formula, .Offset(-1).Formula
 
Laatst bewerkt:
nog een vraagje...

@HSV:
Na een tijdje bezig te zijn, bevalt het me nog steeds uitermate goed!
Nog één dingetje: Ik heb een aantal 'voorwaardelijke opmaken' in de sheet zitten.
Elke keer als er een regel wordt bijgemaakt, worden ook een aantal opmaken toegevoegd voor die regel.
Is dit nog in de macro te programmeren, dat de range van de opmaken wordt uitgebreid, in plaats dat er steeds een nieuwe range (voor één regel) wordt toegevoegd?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan