Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: niet aansluitende cellen leegmaken via VBA  (gelezen 12199 keer)

0 leden en 1 gast bekijken dit topic.

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #15 Gepost op: 28 juli 2021, 17:25:47 »
Zo?
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #16 Gepost op: 28 juli 2021, 18:25:28 »
Hey Albert,

Bedankt voor je reactie.
Maar dit is niet wat ik zocht. Dit betreft enkel een gewone keuzelijst waarbij men enkel de namen die reeds in de keuzelijst staan ofwel kan selecteren ofwel kan intypen.
Nieuwe namen aanvaard hij niet en dat is helemaal niet de bedoeling, het is de bedoeling dat hij nieuwe namen toevoegt aan de lijst in de tabellen waarop de keuzelijst van toepassing is.
Ook moet het de bedoeling zijn dat als ik een naam begin in te typen die wel reeds in die keuzelijst staat dat deze dan automatisch wordt voorgesteld om deze vervolgens te selecteren. Momenteel staan er nog maar een paar namen in die lijsten maar dat zullen er uiteindelijk honderden worden en ik kan onmogelijk onthouden welke namen er reeds in de lijsten staan, ook is het niet wenselijk om telkens de hele lijst naar beneden te moeten scrollen om een naam te kunnen selecteren. Dan gaat het sneller om hem gewoon volledig handmatig in te typen zonder keuzelijst.

De inhoud van tabel 'plaats' moet als keuzelijst worden weergegeven enkel in cel "E15".
De inhoud van tabel 'naam' moet als keuzelijst weergegeven worden in de cellen "E17" - "E19" - "E25" - "E29" en "E35".
De inhoud van tabel 'voornaam' moet als keuzelijst weergegeven worden in de cellen "E21" - "E23" - "E27" - "E31" - "E33" en "E37".

Cel "E17" (STAMnaam) en "E19" (AKTEnaam) zullen vaak verschillend zijn in schrijfwijze, zeker bij akten uit de 17e, 18e en 19e eeuw toen men de namen schreef op gehoor en de spelling van de namen dus niet zo nauw nam waardoor men vaak binnen één en hetzelfde gezin soms tot 5 (of meer) verschillende varianten vind van dezelfde familienaam.
Om bij de verdere verwerking van de gegevens (werkblad 'totaal') door VBA de relaties tussen ouder en kind te kunnen vaststellen heb ik ervoor gekozen een 'stamnaam' te definiëren waarop die relaties vlotjes kunnen gemaakt worden. De 'AKTEnaam' is de wijze waarop de naam in de aktes wordt vermeld en is belangrijk voor de output van de gegevens in het werkblad 'gezinnen'.

Toch bedankt voor de poging.

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #17 Gepost op: 28 juli 2021, 19:00:40 »
Hoi BlackDevil,

Zal zeker allemaal mogelijk zijn.
Dat wordt ook voor mij wat puzzel/testwerk.
 Echter momenteel druk met andere zaken( maken van div. warmteverlies- en koellastberekeningen.).Geldkistje moet worden bijgevuld. ;D
Er zijn hier op dit forum genoeg specialisten die zeker willen helpen en anders minimaal een weekje wachten.

Vraagje: Waarom ben je afgestapt van de Userform? Gebruik hiervan maakt het volgens mij een stuk eenvoudiger.

aanvulling: Kijk eens naar de mogelijkheden van comboboxen.
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #18 Gepost op: 28 juli 2021, 19:28:23 »
Hey Albert,

Geen enkel probleem, persoonlijk werk gaat voor hé. Zoals je zei, er zitten hier genoeg experten  ;).


groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #19 Gepost op: 05 augustus 2021, 12:29:17 »
Op tabblad "inhoud keuzelijsten" staat een voorbeeld met een ComboBox, wat het voordeel van een userform nogmaals benadrukt.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #20 Gepost op: 05 augustus 2021, 13:06:16 »
@Veerj,

Hartelijk dank voor je voorbeeld.
Klein vraagje :
Hoe moet ik in de code voor de combobox de range aanpassen als de combobox op een ander werkblad staat dan de range?

Alvast dank.

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #21 Gepost op: 05 augustus 2021, 13:36:19 »
Even de sheet aanroepen in de code :)
Zet deze code altijd achter het blad waarin de ComboBox staat

Private Sub ComboBox1_Change()
    With ComboBox1
     .List = Filter(Application.Transpose(Sheets("inhoud keuzelijsten").Range("voornaam")), .Value, 1, vbTextCompare)
     .DropDown
   End With
End Sub

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #22 Gepost op: 05 augustus 2021, 13:44:55 »
Bedankt  _/-\o_

Het was de correcte formulering voor het aanroepen van de juiste sheet waar ik niet zeker was.

Nu ben ik nog aan het uitzoeken hoe ik achter de opdrachtknop (voor het wegschrijven van de ingevoerde gegevens) de code moet formuleren om nieuwe waarden in de comboboxen (dus waarden die nog niet in de betreffende tabellen (lijsten) staan) automatisch moet laten toevoegen aan die betreffende tabel (lijst)).


groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #23 Gepost op: 05 augustus 2021, 13:47:32 »
Wanneer je iets in de tabel toevoegt wordt die automatisch meegenomen. Het kan dat ik je verkeerd begrijp

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #24 Gepost op: 05 augustus 2021, 14:13:28 »
Ja idd, dat weet ik, maar omdat het niet handmatig toegevoegd wordt en het naar een ongekende rij (eerste lege rij in de tabel) moet worden weggeschreven (en enkel maar ingeval de waarde nog niet aanwezig is in de tabel) weet ik dus niet goed hoe ik dit binnen VBA moet gaan formuleren/benoemen... Vooral met formuleringen/benoemingen mbt range heb ik het nog vrij lastig binnen vba.
Bij gegevens die in gewone tabelvorm moeten worden weggeschreven weet ik hoe ik die verwijzingen moet formuleren/benoemen maar voor "echte" tabellen weet ik het dus niet.
Hoop dat je wat wijs geraakt uit mijn uitleg, is moeilijk uit te leggen zo, zeker als je, zoals ik, nog niet echt thuis bent inzake de technische taal hieromtrent.

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #25 Gepost op: 05 augustus 2021, 15:02:46 »
Ik denk dat je er zo wel uit komt.
In onderstaande code ben ik even uitgegaan dat de naam in cel E21 van tabblad INPUT in de tabel gezet moet worden, indien deze nog niet bestaat.

Sub jvr()
 With Sheets("inhoud keuzelijsten").ListObjects("voornaam")
    If Not IsNumeric(Application.Match(Sheets("INPUT").Range("E21"), .DataBodyRange, 0)) Then
       .ListRows.Add.Range = Sheets("INPUT").Range("E21")
    Else
       MsgBox "Naam bestaat al"
    End If
 End With
End Sub

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #26 Gepost op: 05 augustus 2021, 15:32:21 »
@Veerj,

Bedankt voor je codeblok (dit zou ik zelf nooit gevonden hebben denk ik  :) )...

Als de waarde, die eventueel moet toegevoegd worden, uit bevoorbeeld 'ComboBox1', moet gehaald worden, hoe pas ik de range dan aan?

(Sheets("INPUT").Range("ComboBox1")of
(Sheets("INPUT").Range(ComboBox1)of
(Sheets("INPUT").ComboBox1)
Uiteindelijk zullen alle invoervakken uit kolom "E" comboboxen zijn waarvan er dus meerdere naar dezelfde tabel zullen verwijzen.

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #27 Gepost op: 05 augustus 2021, 15:35:09 »
Als je kijkt bij de eigenschappen van de combobox kun je een LinkedCell toevoegen. Dan kun je gewoon verwijzen naar een cel.

Of direct gelinked aan de combobox

Sheets("INPUT").ComboBox1.Text

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #28 Gepost op: 05 augustus 2021, 15:38:57 »
Ah, ok bedankt  ;)  _/-\o_ :thumbsup:

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: niet aansluitende cellen leegmaken via VBA
« Reactie #29 Gepost op: 05 augustus 2021, 15:42:22 »
Inclusief gesorteerde lijst:

Sub jvr()
 With Sheets("inhoud keuzelijsten").ListObjects("voornaam")
    If Not IsNumeric(Application.Match(Sheets("INPUT").Range("E21"), .DataBodyRange, 0)) Then
       .ListRows.Add.Range = Sheets("INPUT").Range("E21")
       .Range.Sort .DataBodyRange(1, 1), 1, , , , , , 1
    Else
       MsgBox "Naam bestaat al"
    End If
 End With
End Sub

 


www.combell.com