Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 7 van 7

Onderwerp: Excel VBA waarde cel zoeken en plaatsen

  1. #1

    Excel VBA waarde cel zoeken en plaatsen

    Ik hoop dat de titel van mijn vraag niet al teveel verwart. Onderstaand probeer ik uit te leggen wat ik zoek.

    In een Excelsheet wil ik dat VBA mij helpt om waarden uit een te bepalen cel op te halen en te plaatsen op een andere te bepalen cel. Ik wil hiervoor gebruik maken van een for...next constructie ( For Maand = 1 to 12). Elke keer als een waarde is opgehaald en geplaatst wordt een formulier afgedrukt en wordt een nieuwe Next uitgevoerd, enzovoorts.

    Het gaat nu alleen om de instructies die de waarde ophaalt en plaatst. Het gegeven moet worden gehaald uit een kolom die aantal Maand rechts ligt gerekend vanaf cel G6 op werkblad DATA en moet worden geplaatst in een regel die aantal Maand ligt onder de cel gerekend vanaf cel B7 op werkblad FORMULIER.

    Een voorbeeld:
    Stel dat Maand de waarde 2 heeft dan dient het gegeven te worden gehaald 2 kolommen na cel G6 dus wordt dat I6. De waarde moet worden geplaatst 2 regels onder cel B7 dus B9.

    Wie wil me helpen bij het samenstellen van deze instructies?

  2. #2
    Mega Senior Ginger's avatar
    Geregistreerd
    29 december 2006
    Locatie
    Delft
    Afstand tot server
    ±163 km
    arnoderuig, Plaats ff een voorbeeldbestandje (zonder privé informatie!) waardoor het voor de helpers makkelijker wordt om je snel te helpen.

    Groet, Leo
    ____________________________
    GINGER AlsoKnownAs REDHEAD
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test een nieuwe VBA-code altijd éérst uit op een
    kopie van het bestand ipv direct in het orgineel...!

    + + + + + + + + + + + + + + + + + + + + + + + + + +

  3. #3
    Bijgaand het voorbeeldbestand (eerder opgegevens posities wijken daarin af).

    Op het blad DATA linksboven heb ik vermeld wat de bedoeling is. Ik heb het probleempje meteen uitgebreid door ook de code te vragen om de uren van een project van een bepaalde maand op een juist plek in het FORMULIER te krijgen.

    Dank vast voor een oplossing.
    Attached Files Attached Files
    Laatst aangepast door arnoderuig : 27 maart 2009 om 13:14 Reden: bestand bijgevoegd

  4. #4
    Code:
    for j= 1 to 12
     [B7].offset(j)=[C6].offset(,j)
    Next
    Overigens bestaat hiervoor de ingebouwde funktie Transpose
    Code:
     [B7].resize(12)=worksheetfunction.transpose(worksheetfunction.transpose([C6].resize(,12)))
    Laatst aangepast door snb : 27 maart 2009 om 13:17
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen. De bijlagen-faciliteit zit niet voor niets in dit forum !

  5. #5
    SNB, dank voor je reactie. Een paar opmerkingen waarmee ik hoop één en ander ook te kunnen begrijpen:

    1. Begrijp ik goed dat het verschil tussen (j) en (,j) is dat een getal vóór de komma (of gebruik van geen komma) betekent "zoveel posities naar beneden" en dat het getal achter de komma betekent "zoveel posities naar rechts"? Begrijp ik goed dat je dit dus ook kan combineren zodat (25,30) betekent EN 25 posities naar beneden EN 30 posities naar RECHTS? En naar ik verwacht kun je voor de getallen tussen haakjes ook een minteken plaatsen zodat je ook NAAR BOVEN en NAAR LINKS kan gaan? Ik moet nog wel even kijken op welke wijze ik de verwijzing naar het juiste werkblad maak. De gegevens zijn afkomstig van het werkblad DATA en worden geplaatst op het werkblad FORMULIER.

    2. Je opmerking over Transpose gaat waarschijnlijk in mijn geval niet op. Wat ik van Transpose weet is dat in dat geval een hele reeks horizontale cellen in één keer worden omgezet in een reeks verticale cellen. Dat is hier beslist niet de bedoeling.

  6. #6
    Code:
    for j= 1 to 12
     [formulier!B7].offset(j)=[data!C6].offset(,j)
    Next
    Kijk in de hulpfunktie van de VBEditor bij Offset en je vindt een bevestiging van je vermoedens.

    Deze bewerking is overigens wel een omzetting van een aaneengesloten range in 1 regel naar een aaneengesloten range in een kolom. Transpose is dus van toepassing.
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen. De bijlagen-faciliteit zit niet voor niets in dit forum !

  7. #7
    SNB, Dank voor je waardevolle aanvullingen; ik zal de offset-help zeker eens bekijken.

    Volgens mij is de Transpose in mijn situatie niet mogelijk. In mijn oorspronkelijke vraagstelling heb ik aangegeven dat binnen de for..next een formulier moet worden geprint nadat de gegevens van een maand (lees: één maand) zijn opgehaald en geplaatst. Wellicht was dat nog iets onduidelijk. Bij een transpose worden alle velden in één keer gevuld en dat is niet de bedoeling.

  8. Dit topic is automatisch gesloten omdat er sinds vier maanden niet meer op gereageerd is.

    Indien gewenst kan de topicstarter een verzoek tot heropening indienen.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen