Foutje in Excel formulier

Status
Niet open voor verdere reacties.

Hans

Gebruiker
Lid geworden
19 dec 2016
Berichten
98
Hoi

In de bijlage het bestand met daarin het bedoelde formulier "zoek debiteur".

Als je in met de combobox een debiteur zoekt krijg ik een foutmelding, de fout zou in deze code zitten:
Code:
TargetRow = Application.WorksheetFunction.Match(ComboBox1_zoek_debiteur, Sheets("Daglijst").Range("dyn_rij_entrie"), 0)

Wie zou eens in het formulier willen kijken of die de fout kan vinden.

Ik ben tot hier gekomen door een how-to serie op Youtube te volgen. Dus voordat iemand schrijft of ik zelf al gezocht heb, ja dus. :rolleyes:
Ohja, het formulier is nog dik in de ontwikkeling. :D

Ik hoop op nuttige bijdrages. Alvast veel dank.
Groet Hans

Bekijk bijlage daglijst.xlsm
 
Tekst en getallen zijn niet te vergelijken. Wat je er verder mee wil?

Code:
Private Sub Zoek_debiteur_Click()
  MsgBox Application.Match(Val(ComboBox1_zoek_debiteur), Sheets("Daglijst").Range("dyn_rij_entrie"), 0)
End Sub
 
Als je ook de Sub zelf verzint werkt het sowieso niet.

Code:
Private Sub ComboBox1_zoek_debiteur_Change()
 MsgBox ComboBox1_zoek_debiteur.Column(0)
End Sub
 
Laatst bewerkt:
Beste reageerders, probleem opgelost. Dank voor de bijdrage, draadje zal ik sluiten.
 
Ik heb dus opnieuw jullie hulp nodig.

Als je met het formulier "zoek" een entry wil zoeken krijg je een foutmelding. De oplossingen die toen werden aangedragen waren niet de goed. Wie zou willen kijken wat er verkeerd staat in de code?

Vast bedankt, ik hoop op een snelle reactie ;)

Bekijk bijlage Daglijst.xlsm
 
Dat waren zeker goede antwoorden, maar als jij steeds de naam van de Combobox wijzigt, zul je dat ook in de code moeten doen.

Zoek de verschillen!
Code:
Dim TargetRow As Variant
    
'use Match worksheet function to find position of chosen name
TargetRow = Application.Match(combobox_zoek, Sheets("Daglijst").Range("dyn_rij_entrie"), 0)

Code:
Dim TargetRow As Integer
    
'use Match worksheet function to find position of chosen name
TargetRow = Application.WorksheetFunction.Match(ComboBox1_zoek_debiteur, Sheets("Daglijst").Range("dyn_rij_entrie"), 0)
Sheets("Engine").Range("B5").Value = TargetRow 'save position in the engine, for use later
 
Ik heb het aangepast, maar nog steeds een foutmelding. Wat zie ik over het hoofd?

Code:
Private Sub CmdButton_zoek_Click()

Dim TargetRow As Integer
    
'use Match worksheet function to find position of chosen name
TargetRow = Application.WorksheetFunction.Match(combobox_zoek, Sheets("Daglijst").Range("dyn_rij_entrie"), 0)
Sheets("Engine").Range("B5").Value = TargetRow

Hier de aangepaste versie: Bekijk bijlage daglijst.xlsm
 
Je hebt de verschillen nog niet ontdekt, maar te zoeken naar iets wat er al is is totaal overbodig.
Zie mijn eerste post over dit.
 
Ik doe mijn best maar zie het nog steeds niet. Ik weet eerlijk gezegd ook niet welke codes die hierboven staan goed en welke fout is.

Leg eens uit wat ik fout doe, welke regels kloppen niet en waarom klopt het niet? En hoe zou de code er dan wel uit moeten zien volgens jou? Enige duidelijkheid en toelichting zou me verder helpen.
 
In #2 staat dat je getallen niet met tekst kan vergelijken. In #3 staat een methode waarmee je direct vanuit een combobox een rijnummer kan ophalen. Hoeveel uitleg wil je dan nog hebben?
 
Je hebt al twee formulieren, die ga ik niet samensmeden tot een, die laten we zo.
De code komt er dan zo uit te zien tot het vullen van formulier 'toevoegen' (niet het wegschrijven).

Dus niet zoeken, maar met de gegevens van de combobox werken.
Nb. je bent debiteurnr. 4 vergeten, maar dit terzijde.

Simpeler? verwijder het formulier 'aanpassen' en zet die combobox_zoek in het formulier van 'toevoegen'.
Hoe simpel kan het zijn.
 

Bijlagen

  • daglijst.xlsb
    47,1 KB · Weergaven: 55
Laatst bewerkt:
@ HSV
Het bestand wat jij meestuurt is top, alles werkt! Daarvoor al mijn erkentelijkheid :thumb:

Maar ik krijg het nog steeds niet helemaal aan het werk in mijn eigen bestand. Het formulier aanpassen wil niet verschijnen. Daarom heb ik het bestand hieronder toegevoegd. Zou je daar nog eens naar willen kijken?

Bedoel je letterlijk de grafische weergave van de combobox kopiëren naar het formulier "toevoegen"? Op zich lukt dat wel natuurlijk maar er moet dan toch ook een en ander aan codes en gedragingen gekopieerd worden?
En hoe combineer ik al die verschillende code-delen? Ik heb een paar pogingen ondernomen maar je raadt het al.....luknie :d

Mocht je tijd en zin hebben, je mag het wat mij betreft aanpassen zoals jij voorstelde, graag zelfs!

Bekijk bijlage Bellijst.xlsm
 
Zo zou ik het doen Hans.
 

Bijlagen

  • Bellijst.xlsb
    93 KB · Weergaven: 38
Hoi Harry

Ik ben heel blij met je hulp, ideeën, toevoegingen, verbeteringen, suggesties, aanpassingen, papatje mét!
Wel zit er nog een storing in, tsjek zelf maar even: als je in het formulier bij debiteurnummer zelf een nummer wil typen gaat die in de hik. Enig idee hoe dit is op te lossen?

Ook heb ik nog een vraag. Als ik een kolom wil toevoegen of verwijderen, heeft dat dan invloed op de codes? Formules passen zich aan, maar hoe zit dat met codes?

Groet Hans
 
Laatst bewerkt:
Test het zo maar eens weer Hans.

Je vraag: ja, dat heeft invloed.
 

Bijlagen

  • Bellijst.xlsb
    96,5 KB · Weergaven: 43
Test het zo maar eens weer Hans.

Je vraag: ja, dat heeft invloed.

Harry, GE-WEL-DIG!!! Echt super jouw hulp.

Nu komt het grote gepuzzel, het finetunen van het formulier: labels er bij, keuzeknop welke invoer je wil plaatsen, keuzeknop welk soort data ik aan wil passen, enzovoort hahaha. Dus je bent nog niet van mij af, ik kom er nog wel een keer op terug ;)

Je zegt "ja, dat heeft invloed" op mijn vraag of het verwijderen of toevoegen van een kolom invloed heeft op de codes. Stel, ik wil een kolom toevoegen of verwijderen, passen de codes zich dan aan of moet je de codes handmatig bijwerken?

Vast bedankt weer, groet Hans
 
Als je ergens een kolom tussenvoegt, komen de verkeerde waarden in de verkeerde textboxen.

Doordat .column(3) nu bijvoorbeeld .column(4) moet zijn.
 
Zodra je met VBA gaat werken, wordt Excel eigenlijk alleen een opslagmedium, geen bewerkingsmedium.
Kolommen toevoegen doe je als je Excel als bewerkingsmedium inzet.
Zo gauw je met VBA werkt vindt alle variatie in VBA plaats en wordt Excel invariant.
Je moet je denk-en werkconcept dus aanpassen.
 
Ik snap het, althans ik snap wat je bedoelt ;)

Ik heb er al een kolom tussen uit gehaald en toen volstond het om de kolommennamen aan te passen die daarmee verband hielden. Het betekent waarschijnlijk vooral heel goed de code nalopen en waar nodig kolom nummers aanpassen en dergelijke?

NU eerst maar het formulier uitbreiden: zoekknop voor andere kolom bijvoorbeeld, lay-out aanpassen en bidden dat het dan nog werkt :d
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan