Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[excel] VBA: Hulp bij selecteren

Pagina: 1
Acties:

  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
Hallo,

Ik heb een probleem bij VBA/Excel:
Bij bepaalde sheets wil in in een row elke cel kunnen selecteren, dan kopieren naar andere sheet maar dat hij altijd de cel van de row uit Collum C gebruikt.
bvb: ik selecteer in de sheet cel: E6, en kopieer deze via een knop, dan wil ik dat hij bij de andere sheet,
cel C6 weergeeft, want het is voor een bestelformulier en in collum C staan bestel nummers, maar mijn baas wilt dat ik overal kan klikken voor het kopieren.

Wie helpt mij?

Mvg

Martin0

Twitch


  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Als het kopiere via "een knop" gebeurd en niet via ctrl-C of Bewerken, Kopieren. Dan zie ik toch geen enkel probleem.

code:
1
Sheet1.Range("A1").value = Sheet2.Range("C" & Selection.Range.Row).text

[ Voor 5% gewijzigd door Big Womly op 02-11-2009 10:57 ]

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
Sub Invoeg()

Dim aanwijzer As Integer
Dim pagina As String
Dim prijs As Currency
Dim omschrijving As String

pagina = Range("D3")

ActiveCell.Range("A1:B1").Select ' kopieren geselecteerd item
Selection.Copy
prijs = ActiveCell.Offset(0, 5) ' ' netto prijs mee opslaag
omschrijving = ActiveCell.Offset(0, 2)

Sheets(pagina).Select ' openen juiste scherm'
aanwijzer = Range("E3") 'juiste rijnummer opzoeken
Range("H21").Select '1e pos rijnummer
ActiveCell.Offset(aanwijzer, 0).Range("A1").Select 'juiste cel voor kopieren selecteren
ActiveSheet.Paste ' plakken
ActiveCell.Offset(0, 5).Select 'juiste cel voor kopieren selecteren
Selection = omschrijving
ActiveCell.Offset(0, 6).Select 'juiste cel voor kopieren selecteren
Selection = prijs
ActiveCell.Offset(0, -12).Select 'juiste cel voor kopieren selecteren

Range("E3") = aanwijzer + 1 'teller ophogen voor volgende rij

End Sub

dit is wat ik heb, miss word er iemand wat wijzer uit en kan het me uitleggen

Twitch


  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Zo, zonder te weten wat er in de cellen staat, is het moeilijk uit te leggen. Doorloop de code eens met de debugger en bekijk wat hij stap voor stap doet.

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
in de cellen staan bestelcodes, het is een excel bestandje waar je snel een bestelformulier kan maken of een offerte, de code die ik hierboven heb geplaatst is voor het kopieren naar het bestelformulier, alleen in excel zelf dus niet VBA moet ik in 1 row maakt niet uit welke overal kunnen klikken, dan moet ik op het bestelformulier de cel van de betreffende row uit collum C zien te krijgen en dat lukt me niet.

Twitch


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
Probleem opgelost ^^, zal de code ff hierheen kopieren:


Sub Invoeg()

Dim aanwijzer As Integer
Dim pagina As String
Dim prijs As Currency
Dim omschrijving As String
Dim Bestelnr As String


pagina = Range("D3")


If ActiveCell.Column = 1 Then
ActiveCell.Offset(0, 2).Select
ElseIf ActiveCell.Column = 2 Then
ActiveCell.Offset(0, 1).Select
ElseIf ActiveCell.Column = 4 Then
ActiveCell.Offset(0, -1).Select
ElseIf ActiveCell.Column = 5 Then
ActiveCell.Offset(0, -2).Select
ElseIf ActiveCell.Column = 6 Then
ActiveCell.Offset(0, -3).Select
ElseIf ActiveCell.Column = 7 Then
ActiveCell.Offset(0, -4).Select
ElseIf ActiveCell.Column = 8 Then
ActiveCell.Offset(0, -5).Select
ElseIf ActiveCell.Column = 9 Then
ActiveCell.Offset(0, -6).Select
ElseIf ActiveCell.Column = 10 Then
ActiveCell.Offset(0, -7).Select
ElseIf ActiveCell.Column = 11 Then
ActiveCell.Offset(0, -8).Select
ElseIf ActiveCell.Column = 12 Then
ActiveCell.Offset(0, -9).Select
End If
ActiveCell.Range("A1:B1").Select ' kopieren geselecteerd item
Selection.Copy
prijs = ActiveCell.Offset(0, 5) ' ' netto prijs mee opslaag
omschrijving = ActiveCell.Offset(0, 2)

Sheets(pagina).Select ' openen juiste scherm'
aanwijzer = Range("E3") 'juiste rijnummer opzoeken
Range("H21").Select '1e pos rijnummer
ActiveCell.Offset(aanwijzer, 0).Range("A1").Select 'juiste cel voor kopieren selecteren
ActiveSheet.Paste ' plakken
ActiveCell.Offset(0, 5).Select 'juiste cel voor kopieren selecteren
Selection = omschrijving
ActiveCell.Offset(0, 6).Select 'juiste cel voor kopieren selecteren
Selection = prijs
ActiveCell.Offset(0, -12).Select 'juiste cel voor kopieren selecteren

Range("E3") = aanwijzer + 1 'teller ophogen voor volgende rij

End Sub

Twitch


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Het zal best werken maar echt leesbaar is het niet. ;) Je hoeft een cel niet te selecteren om hem uit te lezen of er iets in weg te schrijven en dan kan het allemaal een stuk compacter:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Sub KopieerArtikelData()
    Dim bron As Range
    Dim doel As Range
        
    Sheets("blad1").Activate
    Set bron = ActiveCell.EntireRow
    Set doel = Sheets("blad2").Rows(Sheets("blad2").[e3])
    
    doel.Cells(1, 1) = bron.Cells(1, 3)
    doel.Cells(1, 2) = bron.Cells(1, 4)
    doel.Cells(1, 4) = bron.Cells(1, 5)
End Sub

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
Lustucru schreef op woensdag 04 november 2009 @ 10:41:
Het zal best werken maar echt leesbaar is het niet. ;) Je hoeft een cel niet te selecteren om hem uit te lezen of er iets in weg te schrijven en dan kan het allemaal een stuk compacter:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
Sub KopieerArtikelData()
    Dim bron As Range
    Dim doel As Range
        
    Sheets("blad1").Activate
    Set bron = ActiveCell.EntireRow
    Set doel = Sheets("blad2").Rows(Sheets("blad2").[e3])
    
    doel.Cells(1, 1) = bron.Cells(1, 3)
    doel.Cells(1, 2) = bron.Cells(1, 4)
    doel.Cells(1, 4) = bron.Cells(1, 5)
End Sub
ik heb van me baas al doorgekregen hoe ik het moet verkleinen en zo, maar toch bedankt voor de hulp :)
ik heb nu namelijk:


Sub Invoeg()

Dim aanwijzer As Integer
Dim pagina As String
Dim prijs As Currency
Dim omschrijving As String
Dim test As Integer


pagina = Range("D3")

test = ActiveCell.Column
ActiveCell.Offset(0, 3 - test).Select

ActiveCell.Range("A1:B1").Select ' kopieren geselecteerd item
Selection.Copy
prijs = ActiveCell.Offset(0, 5) ' ' netto prijs mee opslaag
omschrijving = ActiveCell.Offset(0, 2)

Sheets(pagina).Select ' openen juiste scherm'
aanwijzer = Range("E3") 'juiste rijnummer opzoeken
Range("H21").Select '1e pos rijnummer
ActiveCell.Offset(aanwijzer, 0).Range("A1").Select 'juiste cel voor kopieren selecteren
ActiveSheet.Paste ' plakken
ActiveCell.Offset(0, 5).Select 'juiste cel voor kopieren selecteren
Selection = omschrijving
ActiveCell.Offset(0, 6).Select 'juiste cel voor kopieren selecteren
Selection = prijs
ActiveCell.Offset(0, -12).Select 'juiste cel voor kopieren selecteren

Range("E3") = aanwijzer + 1 'teller ophogen voor volgende rij

End Sub

[ Voor 41% gewijzigd door Martin0 op 04-11-2009 10:46 ]

Twitch


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
vertelt je baas je ook even dat je codetags: [code=vb] [/code] moet gebruiken?
:Y)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
Lustucru schreef op woensdag 04 november 2009 @ 10:55:
offtopic:
vertelt je baas je ook even dat je codetags: [code=vb] [/code] moet gebruiken?
:Y)
nope xD maar so what ik ben leerjaar 2 niveau 4 student van het MBO dus ik hoef niet alles te weten :P en anders heb ik nog ongeveer alles bij elkaar 1500 bladzijde met info in 2 boeken dus xD

Twitch


  • Martin0
  • Registratie: November 2009
  • Laatst online: 26-11 20:48
het is opgelost dus deze kan op de lock

Twitch


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Topics gaan niet per definitie op slot ;)

Maar kan je misschien ook aangeven hoe je het wel hebt opgelost? Kan interessant zijn voor anderen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1