Waarde uit range samenvoegen.VBA

Status
Niet open voor verdere reacties.

Magik

Gebruiker
Lid geworden
18 jan 2020
Berichten
49
Hallo allemaal.

Misschien ziet iemand dit op te lossen.

Ik probeer via VBA het volgende te bereiken, het probleem is enkel dat ik het document niet van de bedrijfsserver kan halen.
En al had ik dat wel gekund dan had ik het niet kunnen maken het hier neer te gooien.
Maar ga toch proberen een poging te doen om het op te lossen.

Bij het aanklikken van een willekeurige cel verschijnt er een formulier met tal van mogelijkheden.
Hierin staan tal van gegevens die uiteindelijk een berekening voor projecten maakt.

Als eerste is men verplicht om in 4 opvolgende Inputboxen waardes op te geven die voor elk project verplicht zijn.
Deze 4 waardes worden naast elkaar in 4 opvolgende kollommen geplaatst.
Helemaal goed en eigenlijk niets mis mee, iets als dit bv (Cel b2 bv 12) (Cel c2 bv 987654) (Cel d2 bv service.) (Cel e4 bv Maarssen)


Tot het moment dat het document in een mappen structuur en map gaat aanmaken.
De waarde uit Cel d2 word de naam van de map.
Dit gaat 1x goed en dan word de map overschreven.
Ik zou dit kunnen aanpassen om de waarde vanuit Cel b2 en Cel c2 ook voor het woordje service te typen, in dat geval zou de map dan bv
"12-987654-service" heten.
En dat is nu net de bedoeling alleen 2x deze waardes invoeren is ook dubbel zoveel kans op fouten.
Ik heb ook niet de keus om de 2 voorgaande kollommen niet te gebruiken want die 2 waardes staan daar niet voor niets
Nu heb ik dit:

Range("TabelPlanning
Code:
").Rows(i).Value = InputBox("Geef Code:", "Invullen graag", "Code")
Range("TabelPlanning[Project-ID]").Rows(i).Value = InputBox("Geef de Project-ID:", "Invullen graag", "Project-ID")
Range("TabelPlanning[Projectnaam]").Rows(i).Value = InputBox("Geef de Projectnaam:", "Invullen graag", "Nieuw Project")

Wie kan mij vertellen hoe ik na het invullen van een projectnaam ook de waardes uit de 2 voorgaande cellen in cel D getoond worden.
Lees voor Cel D "Code-ID-Naam"

Groet Dick
 
Een isomorf voorbeeldbestand volstaat.
 
Ik was er al bang voor, ga er dit weekend aan beginnen.
 
Nou het is me gelukt om dat stukje uit het document te krijgen.
Indien je in de kolom F op een project id dubbel-klikt komt er een scherm op.
Sorry maar het ziet er niet uit maar het werkt wel.
Klik op Nieuw en er volgen een paar schermpjes waar je informatie in kunt(moet) vullen.
Wat mij betreft klik je 4x door, het scherm verdwijnt en de regel word toegevoegd.
Werkt helemaal goed alleen is 1 ding jammer.
Ik wil bij de projectnaam in de kolom zowel ook de code en het project id hebben staan zoals in cel G2 word getoond.
Ik hoop dat het hiermee gaat lukken.

Gr Dick
 
Ipv van alles uit te sluiten kan je ook gewoon kijken of er binnen de tabel gedubbelklikt is.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, ListObjects("TabelPlanning").DataBodyRange) Is Nothing Then ProjectForm.Show
End Sub

Waarom gebruik je 4 inputboxen? Kan je toch net zo goed vier tekstvakken in het formulier maken en daar wat mee doen.
Er zijn voldoende voorbeeldjes te vinden hoe je dat kan doen.
 
Waarom maar 4, nou in werkelijkheid volgen er nog een aantal.
Op het moment dat alle inputboxen ingevuld zijn volgen er tal van berekeningen waaruit bv tijden komen.
De tijden geven aan wanneer iets in een project gereed moet zijn anders treed er vertraging op.
Dat lege scherm wat je zag is ook voorzien van tal van opties waaronder het soort project.
Deze maakt dan een formulier voor me met de benodigde documenten voor het project zoals vergunningen e.d.
Dit alles draait als een tierelier.

Ik had je het document met trots willen laten zien maar het is niet alleen van mij.
Het gros misschien wel 60% is door een collega geschreven, aan het overige hebben een andere collega en ik gewerkt.
Helaas is de eerste op dit moment beschikbaar door privé redenen, de andere is een klein half jaar geleden vertrokken naar een andere werkgever.
Nu probeer ik dit op te lossen maar zie dat het iets moeilijker is dan gedacht.

Zoals in het eerste bericht al werd geschreven word er een nieuwe map op de server aangemaakt en deze krijgt de naam zoals in in de cel in kolom G staat.
Juist om die reden is het belangrijk dat in kolom G ook de code en project id komen te staan.
 
De vraag is niet waarom maar 4 maar waarom? Het is toch nogal onzinnig om middels een userform inputboxen te gebruiken?
Verder staat er veel tekst in jouw uitleg waar niets van terug te vinden is in het bestand.

Met een simpel formulier heb je geen enkele inputbox nodig. Ik ben wel benieuwd wat de andere collega's zoal als code gebruikt hebben. Maar zal wel super geheim en kilometers lang zijn.
 

Bijlagen

Laatst bewerkt:
En bedankt, ik wacht wel tot mijn collega terug is.
Hier heb ik dus niets aan.
 
Waarom schakelt een rijke organisatie als een watereschap niet gewoon een professional in om dit te bouwen ?
Je voorbeeld bevat alleen illustraties van amateuristische beginnersfouten: het gebruik van 'select' in VBA, het gebruik van Application.Run, het gebruik van inputbox in een Userform (zie V&A), de invoer van dubbele gegegevens in een tabel. een tabel met een subtotaalrij, waar niets te berekenen valt, het niet-gebruiken van cel A1 in een werkblad en ga zo maar door.
Als dit een stageprojekt voor beginnende programmeurs zou zijn zouden de kosten ervoor te verantwoorden zijn. Als dit door werknemers in reguliere werktijd gemaakt wordt is het verspilling van belastinggeld aan hobbyisten.
 
Hier heb ik dus niets aan.
Lekkere sympathieke reactie.
Waarom niet? Te moeilijk om te begrijpen? Of steekt te logisch in elkaar waardoor het niet te begrijpen is?
 
Zonder Textbox-gebeurtenissen, zonder Textbox3:

Code:
Private Sub CommandButton1_Click()
  Planning.ListObjects(1).ListRows.Add.Range = Array(CDbl(Mid(Label1, 8)), TextBox1, TextBox2, Join(Array(TextBox1, TextBox2, TextBox4), "_"), TextBox4)
  Unload Me
End Sub
 
De oplossing was als volgt:

Range("TabelPlanning[Projectnaam]").Rows(i).Value = Range("TabelPlanning
Code:
").Rows(i).Value & "-" & _ Range("TabelPlanning[Project-ID]").Rows(i).Value & "-" & _ InputBox("Geef de Projectnaam:", "Invullen graag", "Nieuw Project")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan