• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

kopieer-> vermenigvuldigen mbv vba

Status
Niet open voor verdere reacties.

popipipo

Meubilair
Lid geworden
21 nov 2006
Berichten
9.109
Besturingssysteem
Win11
Office versie
Office 365
Ik heb deze simpele macro:
Code:
Sub vermenigvuldigen()
   Range("K1").FormulaR1C1 = "1"
   Range("K1").Copy
   Range("D2:D7").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
   Range("K1").ClearContents
End Sub

Deze zet het getal 1 in cel K1 daarna wordt er mee gekopieerd en dan weer gedelete.
Kan ik niet in rechtstreeks in vba met het getal 1 gaan rekenen

Code:
Sub vermenigvuldigen()
   Value=1.Copy
   Range("D2:D7").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
End Sub
Dit werkt helaas niet
 
Het kan bv. op deze manier:
Code:
Sub vermenigvuldigen1()
Dim c As Range
For Each c In Range("D2:D7")
c.Value = c.Value * 1
Next c
End Sub
 
Ik heb hem moeten aanpassen naar:
Code:
Sub vermenigvuldigen1()
Dim c As Range
For Each c In Range("D2:D7")
c.Value = c.Value *[COLOR="red"] 0.1[/COLOR]
Next c
End Sub

De vermenigvuldiging had ik er in gezet omdat ik getallen importeer van 1.1 ed
Excel ziet dit dus als tekst.

Als ik jou macro gebruikt maakt hij van de tekst 1.1 het getal 11
Door met 0.1 te vermenigvuldigen wordt het wel 1,1
Ik ben tevreden zo maar was eigenlijk benieuw waarom het met 1 niet werkt?
 
Of zo, sneller bij groter bereik.

Code:
Sub vermenigvuldigen2()
sq = Range("d2:d7")
ReDim Temparray(1 To UBound(sq))
For i = 1 To UBound(sq)
    Temparray(i) = sq(i, 1) * 1
Next
Range("d2:d7") = Application.Transpose(Temparray)
End Sub



Niels
 
Laatst bewerkt:
Het bereik is misschien 25 à 30 cellen, dus maakt de snelheid niet zo veel uit.
Toch bedankt natuurlijk voor je reactie.
 
popipo, je schreef in je eerste bericht:
Deze zet het getal 1 in cel K1 daarna wordt er mee gekopieerd....
Zonder aanvullende gegevens (over het importeren met een punt als decimaalteken) kon op grond van de aangehaalde tekst niet anders dan worden aangenomen dat je bereik met 1 vermenigvuldigd moest worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan