Extra optie bij selectie excel

Status
Niet open voor verdere reacties.

MATA97

Gebruiker
Lid geworden
25 okt 2017
Berichten
22
Beste allen,

Ik zit met volgend probleem: In mijn excel bestand worden waarden overgedragen naar een docvariable in word, deze wordt met de onderstaande code er automatisch ingezet als in een bepaald van een "x" komt te staan. Nu als deze er niet staat komt in het word bestand een foutmelding voor deze variable.
Nu heb ik geprobeerd een extra voorwaarde te maken voor als het vak leeg is, deze werkt spijtig genoeg niet, heeft iemand een ander idee?

Stukje dat voorwaarde maakt voor "x":

If ActiveSheet.Range("E6").Value = "x" Then
With GetObject("C:\test.docx")
.Variables("2") = ActiveSheet.Cells(6, 2)
Close
End With
End If

Alvast bedankt voor de moeite!
 
Zo misschien?
Code:
If ActiveSheet.Range("E6").Value = "x" And ActiveSheet.Cells(6, 2) <> "" Then
    With GetObject("C:\test.docx")
        .Variables("2") = ActiveSheet.Cells(6, 2)
        Close
    End With
End If
 
Bedankt Edmoor,

Dit werkt niet, maar bij u code is het zowel "x" als niet denk ik?
Het moet bij X een bepaalde waarde geven en als er geen X staat moet de docvariable in word leegblijven
 
Dat doet je eigen code al.
De extra controle in mijn voorbeeld kijkt tevens of [B6] gevuld is.
Je moet overigens wel verschil maken tussen x en X.
Je haalt ze nu door elkaar.
 
Beste,

Doet mijn code niet want hiermee krijg ik bij geen x een foutmelding (sorry altijd kleine x)
B6 is altijd ingevuld het gaat enkel om E6 dat wel of niet ingevuld is
 
En dat controleer je al. Plaats anders een voorbeeld document.
Wellicht dat we elkaar zo niet begrijpen.
 
Spijtig genoeg lukt het niet om de file in het bericht te krijgen...

Ik zal het wat bete proberen uitleggen:

Tekst in B6 is vast E6 kan "x" staan, dan wordt deze in een DocVariable gezet in een wordbestand dat zo geprogrammeerd is
Indien er geen "x" in E6 staat mag er in die Docvariable niks komen te staan, blijkbaar herkent hij dit als probleem want dan krijg ik in het word bestand een error code dat de variable niet gedefinieerd.
 
Zonder een Excel EN Word voorbeeld snap ik er niks van.
Er gebeurt niets met dat Word document als er in E6 geen x staat.
 
Word kan lege documentvariabelen niet verwerken: als je aan een documentvariabele een lege string toewijst wordt de variabele gewist/verwijderd.
Zorg er dus altijd voor dat aan een documentvariabele tenminste een spatie wordt toegewezen.

Als je wil voorkomen dat die spatie in het Worddocument wordt getoond, zul je de documentvariabele in een IF veld moeten zetten:

{if {docvariable snb}=" " "" {docvariable snb}}

Om ervoor te zorgen dat het Worddocument later bij opening ook getoond wordt zul je het zichtbaar moeten maken voordat je het sluit.

Code:
With GetObject("C:\test.docx")
  .Variables("2") = iif(cells(6,5)="x",Cells(6, 2).value," ")
  .Fields.update
  .windows(1).visible=true
  .Close -1
end with
 
Laatst bewerkt:
Beste snb,

super bedankt dit werkt helemaal, nog 1 vraag kan ik er ook voor zorgen dat als er geen x staat de hele docvariable van dat stukje weggaat en de andere opschuiven?
 
Ik heb bv. 3 docvariables in mijn word document onder elkaar staan (a,b,c) als er bij b niks is ingevuld blijft door de code van snb het stukje daar leeg zoals het moet, alleen blijft C dan wel nog steeds onder de onzichtbare B staan. Is dit op de lossen?
 
Je bedoelt waarschijnlijk dat de paragraaf dan leeg blijft, maar eigenlijk zou moeten verdwijnen.
Dan moet je het paragraaf-teken opnemen in het If-veld:

{if {docvariable snb1}=" " "" "{docvariable snb1}
"}{if {docvariable snb2}=" " "" "{docvariable snb2}
"}{if {docvariable snb3}=" " "" "{docvariable snb3}
"}
 
Beste snb,

Ik begrijp niet helemaal wat je bedoeld, moet ik dan een nieuwe code voor dit hebben?
Huidig:
With GetObject("C:\Users\test.docx")
.Variables("standaard1") = IIf(Cells(5, 5) = "x", Cells(5, 2).Value, " ")
Close
End With
 
Nee, de VBA code blijft ongewijzigd. De verandering moet plaatsvinden in het Wordbestand.

En bedoelt schrijf je met een t als het geen voltooid deelwoord is.

Als je onvoldoende informatie verstrekt door geen bestanden te plaatsen, mag je geen voldoende antwoorden verwachten.
Dan wordt dit gewoon een onnodig langdradige draad.
 
Laatst bewerkt:
Beste snb, sorry voor het onhandig werken maar het lukte me niet om het bestand erin te krijgen, ik heb nu nog eens een word document gezet met 3 docvariables in, ik heb geprobeerd het te doen zoals u zei maar dit lukte niet.. Kan u laten weten wat ik best doe?Bekijk bijlage testfile.docx
 
Duidelijker dan in #13 kan niet.
Daar zie ik in jouw bestand niets van terug.
Dan kun je beter eerst aan een basiscursus beginnen.
 
Laatst bewerkt:
dat had ik als eerst ik heb uw code ook geprobeerd in het word document (bijlagen) maar als ik deze dan compileer kom er echter alleen terug die code. Ik heb al veel info gezocht om die docvariable te verwijderen uit een word document maar nog niet gevonden... Bekijk bijlage if.docx
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan