Toon posts:

Excel vba Rijen verwijderen / Tab naam ophalen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0Henk 'm!

  • Bergenfietsen
  • Registratie: Februari 2008
  • Laatst online: 17:39
Mijn vraag

Ik heb in excel een factureer programmaatje gemaakt.
Dit is mijn eerste VBA project.
Nadat de (PDF) factuur gemaakt is, worden de gegevens opgeslagen in de diverse tabbladen.
Dit zijn de diverse grootboekrekeningen (1100 debiteuren 1500 BTW 21%, 1505 BTW 9% en 8000 Verkopen), een tabblad verkopen, en bij de desbetreffende debiteur. Elke debiteur heeft een eigen tabblad onder zijn eigen naam.

Mijn probleem is als ik een factuur wil verwijderen.
Ik heb een userform gemaakt waarmee ik de Factuurnummer en de Debiteurennaam ophaal.
Deze kopieer ik tijdelijk in het Sheet "Instellingen" .
Deze staan onder cel "T2" (Factuurnummer) en "T3" (Debiteurennaam)

Dan wil ik met een andere knop de regels verwijderen.
Met de tabbladen met een vaste naam is het geen probleem.

Maar het lukt niet met de tabblad met de Debiteuren.
Met
code:
1
K = Sheets("Instellingen").Range("T3").value
Geef ik "K" de naam van de debiteur
Met
code:
1
I = Sheets("Instellingen").Range("T2").value
Geef ik "I" het factuurnummer aan
Met onderstaande code probeer ik de regel te verwijderen
Het factuurnummer is het Tabblad "Debiteurennaam" staat in kolom B

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  Worksheets(K).Activate
     Worksheets(K).Unprotect
     With (K)

    'Zoek de rij op die gebruikt is bij het opzoeken van de debiteur
     Set Zrange = Sheets(K).Columns(2).Find(What:=I, LookIn:=xlValues, LookAt:=xlWhole)
     R = Zrange.Row
    
    'Kopieert de waarden van de  Userform naar het I
    Sheets(K).Cells(R, 2).value = I
    
    'Verwijderd rij
    For A = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Range("B" & A) = I Then
    Rows(A).Delete
    Else
    End If


Bij alle andere tabbladen werkt het dus perfect
Bij het debiteuren tabblad krijg ik een foutcode dat "methode Delete van klasse range is mislukt"


Wat ik al gevonden of geprobeerd heb
Ik heb andere Delete regels geprobeerd (entirerow.delete etc) maar die geven allemaal dezelfde foutmelding.
Nu vermoed ik dat het Sheet (Tabblad)"Debiteurennaam" niet herkend wordt
Ik zie onder "instellingen"Cel"T3" de Debiteurennaam staan.
Volgens mij is K = Debiteurennaam en Sheets(K) dus Sheets("Debiteurennaam")?

Nog een andere vraag:
Via F8 kan ik stap voor stap de code volgen.
Is het ook mogelijk om stap voor stap de code te volgen in het betreffende userform/sheet?
Dan kan ik meteen zien waar het fout loopt


...

[Voor 0% gewijzigd door g0tanks op 19-05-2020 19:27. Reden: [code]-tags toegevoegd]

Alle reacties


Acties:
  • 0Henk 'm!

  • Bergenfietsen
  • Registratie: Februari 2008
  • Laatst online: 17:39
Het is gelukt!

De fout zat in

Sheets(K).Cells(R, 2).value = I
Dat moest worden Sheets(K).Cells(R, 2).value = Me.TxtFactuurnummer.Value
Dit is de opgevraagde waarde van het Userform

Ik snap het niet helemaal waarom I fout is.
Ik heb:
TxtFactuurnummer.Value via het Userform opgevraagd uit de Sheet "Verkopen"
Deze heb ik een vaste plek gegeven onder Sheet "Instellingen" en met
I = Sheets("Instellingen").Range(T2).Value deze toegewezen aan I.

Acties:
  • 0Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 29-09 22:47

g0tanks

Moderator CSA
Ik heb aan je post even [code]-tags toegevoegd. Handig als je dat in het vervolg ook doet, want dat maakt het een stuk beter leesbaar.

Waar staat de toewijzing van variabele I precies? Dat is niet duidelijk op te maken en ik zou vermoeden dat het daar misgaat.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


  • Bergenfietsen
  • Registratie: Februari 2008
  • Laatst online: 17:39
Bedankt voor het leesbaarder maken van mijn tekst.
Als je bedoelt wat ik denk staat de toewijzing I in de eerste regels van code onder de knop verwijderen

Ik dacht dat het makkelijker is/ was om een variabel getal (factuurnummer) op een vaste plek (Sheet Instellingen) te zetten.
En dan deze toe te wijzen aan een letter (I)
In de berekeningen werkt het goed.

Het programmaatje is nu klaar.
Zo te zien werkt alles zoals het hoort.
Nu nog goed testen

Volgend plan is om het bankboek te integreren



Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee