• 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.

waarde x in cel y op tabblad z vervangen

Status
Niet open voor verdere reacties.
Dit bestandje doet in principe dat wat ik zou willen
 

Bijlagen

  • kies en vervang.xlsm
    24,5 KB · Weergaven: 36
Dat gaat vast niet goed. Je verwijst niet naar de tabnaam maar naar de index. Sheets(1) is het eerste werkblad en niet hetzelfde als het blad "1". De lus en goto zijn overbodig.

Code:
Sub Doorvoeren()
  If IsError(Evaluate("'" & Range("B5").Value & "'!A1")) Then
    MsgBox "Blad: " & Range("B5") & " bestaat niet"
  Else
    Sheets(CStr(Range("B5"))).Range("B8:B10") = Range("B8:B10").Value
  End If
End Sub
 
Vakantie zit er weer op...helaas, dus gaan we weer verder bouwen aan deze macro.

- Uit een keuzemenu komt een indexgetal, stel 7.
- Ik heb invoer op tabblad 'Invoer' in de cellen C5:C10
- deze invoer moet worden doorgevoerd naar tabblad 'Datablad Invoer'
naar de Rij (indexgetal + 4) [in dit voorbeeld Rij 11]
en Kolom C t/m H (of 3e t/m 8e kolom)

zoiets ('t zal niet werken zo getypt)

Code:
Sheets("Datablad Invoer").Range("C(indexgetal+4)")  = Sheets("Invoer").Range("C5")
Sheets("Datablad Invoer").Range("D(indexgetal+4)")  = Sheets("Invoer").Range("C6")
Sheets("Datablad Invoer").Range("E(indexgetal+4)")  = Sheets("Invoer").Range("C7")
etc.

of met een teller:

Code:
indexgetal = Sheets("Invoer").Range("B3").Value
' dus indexgetal is 7 in dit voorbeeld

for i=3 to 8

Sheets("Datablad Invoer").Range("[I]Column(i) (indexgetal+4)[/I]")  = Sheets("Invoer").Range("[I]C (i+2)[/I]")

next i

hier klopt geen 'jota' van, maar de juiste schrijfwijze voor deze celverwijzingen kan ik niet zo snel vinden met Google (tips zijn welkom...)
 
Code:
Range("C"&indexgetal+4)
Of:
Code:
 cells(indexgetal+4,3)
 
Laatst bewerkt:
Begin eens met de vraag als "NIET OPGELOST" te zetten.
En waar is het voorbeeldbestand.?

update: Harry was sneller met de oplossing
 
Laatst bewerkt:
Probeer dit maar eens.
Nog belangrijker is proberen te begrijpen waarom er geen 'jota' van klopt. (zo heb ik het nml. ook geleerd, succes)
Code:
Sheets("Datablad Invoer").Cells(indexgetal + 4, i) = Sheets("Invoer").Range("C" & i + 2)
 
@AD1957 : Excel zelf gaat me goed af (ik denk niet dat er veel gebruikers op de hoogte zijn van "SCHAKELEN" en "FORMULETEKST" om maar wat te noemen).
Omdat mijn wensen alleen met VBA uit te voeren zijn, moet ik me dit ook eigen maken (als 1957 je geboortejaar is, dan schelen we een jaartje ;o)

Deze Cells() notatie is een goede tip...ik denk dat het doet wat ik wil
 
het is altijd handiger om een voorbeeld bestand te plaatsen. Het wegschrijven via een lusje is de meest trage manier die er te bedenken valt.
 
"SCHAKELEN" en "FORMULETEKST" zijn volgens mij pas vanaf excel2019 en dat heb ik niet.
 
@AD1957 : Excel zelf gaat me goed af (ik denk niet dat er veel gebruikers op de hoogte zijn van "SCHAKELEN" en "FORMULETEKST" om maar wat te noemen).
Omdat mijn wensen alleen met VBA uit te voeren zijn, moet ik me dit ook eigen maken (als 1957 je geboortejaar is, dan schelen we een jaartje ;o)

Deze Cells() notatie is een goede tip...ik denk dat het doet wat ik wil
 
op veler verzoek: hét testbestand....En het werkt!!

thnx again:thumb:

edit: de macro heeft wat copy rotzooi na de laatste ' (opname knopje stond aan :eek:)
 

Bijlagen

  • doorvoeren 2.xlsm
    16,5 KB · Weergaven: 26
Laatst bewerkt:
Dit ook.

Code:
Sub VenA()
  x = Application.Match(Sheets("Invoer").Cells(3, 2), Sheets("Datablad Invoer").Columns(1), 1)
  If IsNumeric(x) Then Sheets("Datablad Invoer").Cells(x, 3).Resize(, 5) = Application.Transpose(Sheets("Invoer").Cells(5, 3).Resize(5))
End Sub
 
OK, goede tip

Weten jullie hoe je de kleur van het besturingselement van de knop die deze macro uitvoert kan veranderen?
Deze is nu saai grijs.

Laatmaar: het moet een ActiveX knop zijn....
 
Laatst bewerkt:
Gebruik een shape of een een ander grafisch object en koppel daar jouw macro aan.
 
ik heb een macro die doet wat ie moet doen en als ik deze onder een CommandbuttonInvoer zet een foutcode 1004 geeft:

De code stopt bij Range("D5 : D72") . Select Edit: spaties ivm aanmaken pictogram

wat doe ik niet goed?

Code:
Sub Formules_terugzetten()
'
' Formules_terugzetten Macro
' Formules uit Invoer (origineel) naar Invoer
'

' Kolom "D" terugzetten
    Sheets("Invoer (origineel)").Select
    Range("D5:D72").Select
    Selection.Copy
    Sheets("Invoer").Select
    Range("D5").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

en de 'stuklopende' code
Code:
Private Sub CommandButtonInvoer_Click()


' Kolom "D" terugzetten
    Sheets("Invoer (origineel)").Select
    [COLOR="#FFFF00"]Range("D5:D72").Select[/COLOR]
    Selection.Copy
    Sheets("Invoer").Select
    Range("D5").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
Laatst bewerkt:
Beter?
Code:
Private Sub CommandButtonInvoer_Click()


    Sheets("Invoer").Range("D5:D72") = Sheets[COLOR=#3E3E3E]("Invoer (origineel)")[/COLOR].Range("D5:D72").Formula


End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan