Tekst in msgBox ophalen met vlookup

Status
Niet open voor verdere reacties.

Velpon

Gebruiker
Lid geworden
20 aug 2020
Berichten
84
Goede dag,

Ik heb een Excelsheet die door middel van een Dictionairy tabel meertalig is.
Nu wil ik ook de msgBox (en) meertalig maken.
Dat lukt mij wél statisch. Maar de bedoeling is dat het dynamisch wordt. Ik wil daar vlookup voor gebruiken maar krijg die niet gecombineerd met de msgBox. Kan iemand mij daarmee helpen.
Ik ben gevorderd in Excel maar nog een beginner in VBA.

De 'groene' code doet het prima. Nu de vlookup nog?

'If MsgBox(Worksheets("Dictionairy").Range("B6").Value, vbYesNo) = vbNo Then Exit Sub

If MsgBox(Application.WorksheetFunction.VLookup("msgRESET", "Dict", 2, False), vbYesNo) = vbNo Then Exit Sub


Alvast bedankt
 
Plaats een voorbeeld document.
 
Bijlage

Beste Edmoor,

Ik heb een Excel-voorbeeld bijgevoegd.
Dit is de werkende versie in de statische variant.

De door mij geprobeerde dynamische variant met vlookup is nu weg gecommentarieerd.
Ik hoop dat je me kunt helpen.
 

Bijlagen

  • Voorbeelddoc-2.xlsm
    27,2 KB · Weergaven: 16
Als alleen ed mag helpen, stuur hem dan een PM. Hoeven wij er niet naar te kijken :).
 
De "msgRESET" is vast ook variabel gewenst?
Code:
If MsgBox(Application.Index(.ListColumns(Sheets("R1").Range("b3").Value).Range, _
  Application.Match("msgRESET", .Range.Columns(1), 0), 1), vbYesNo) = vbNo Then Exit Sub
 
Beste
Ik ben mogelijk niet duidelijk genoeg geweest.

De msgRESET is niet variabel.
Dit is het opzoekcommando in de tabel "Dict". Daar is de taalkeuze uit Sheet "R1" cel "B3" al verwerkt.

In de werkende code:
"If MsgBox(Worksheets("Dictionairy").Range("B6").Value, vbYesNo) = vbNo Then Exit Sub"
zou ik de Range("B1") graag vervangen door Excel-formule-taal: "VERT.ZOEKEN("msgRESET";Dict;2;onwaar)"
Maar dat dan nog in VBA-code.
 
Heb je het geprobeerd?

Je wilt zoeken op "msgRESET" en op Italiano.
Dat is de 7e kolom ipv 2.
 
Uiteraard:

In krijg een compileerfout: "Ongeldige of niet gekwalificeerde verwijzing"
 
Hier niet.

Kolom B heb ik eruit gehaald (overbodig).
Druk op de knop.
 

Bijlagen

  • Index Match.xlsb
    21,9 KB · Weergaven: 17
Laatst bewerkt:
Prima, maar wil je altijd de lijn van 'msgRESET'?

Dan kan de code eenvoudiger.
Code:
With Sheets("dictionairy").ListObjects(1)
  If MsgBox(.Range(4, .ListColumns(Sheets("R1").Range("b3").Value).Index), vbYesNo) = vbNo Then Exit Sub
End With
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan