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

Hulp gevraagd: VBA selecteren van juiste cellen

Status
Niet open voor verdere reacties.

Batigoal80

Gebruiker
Lid geworden
4 dec 2007
Berichten
52
Ik moet binnen een code een aantal cellen selecteren

Dit is de code:

Sub Wegschrijven_planning()
Dim dFindDate As Date
Dim sFoundShift As String
Dim rngData As Range
Dim lngRow As Long
Dim ws1 As String
Dim ws2 As String
Dim i As Long

wsInvoer = "Invoerblad_planning"
wsdata = "Database"

dFindDate = Sheets(wsInvoer).Range("V1").Value
sFoundShift = Sheets(wsInvoer).Range("W1").Value

Set rngData = Sheets(wsdata).Range("A1:B1", Sheets(wsdata).Range("A1").End(xlDown))

rngData.AutoFilter 1, dFindDate
rngData.AutoFilter 2, sFoundShift

lngRow = rngData.SpecialCells(xlCellTypeVisible).End(xlDown).Row
For i = 1 To 6
Sheets(wsdata).Cells(lngRow, 168 + i) = Sheets(wsInvoer).Cells(1 + i, 22)
Next i

Sheets("Database").Select
Range("A1").Select
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1

Sheets("Invoerblad_planning").Select
Range("A1:L430").Select
Selection.Interior.ColorIndex = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.ClearContents
Range("V1").Select
Selection.ClearContents


End Sub

In het rode stukje worden de cellen geselecteerd die deze macro moet pakken For i = 1 To 6 .en de cellen waar hij ze moet wegzetten Sheets(wsdata).Cells(lngRow, 168 + i)

Hij neemt nu de cellen C2 tm C7 dit moet worden C1 tm H1
Hij plakt wel goed

Wie weet hoe ik deze positie anders kan bepalen?

Groet Wouter
 
Als ik het goed voorheb is dat stukje code hetgeen ik gisteren voor je schreef. Dat had als basis het bestand test1. Voor dat bestand ging die code werken, maar nu moet hij blijkbaar de waardes van C1 tem H1 nemen, en deze wegschrijven in de gevonden rij en in kolom 169 (FM) tem 174 (FR) is dat correct (vooral dat laatste?)
 
Opgelost

Ja dat klopt. De afgelopen dagen heb ik veel van VBA geleerd. Ik ben er nu zelf achter.
Met behulp van veel trial en error.
Maar ik heb het nu zo

lngRow = rngData.SpecialCells(xlCellTypeVisible).End(xlDown).Row
For i = 1 To 18
Sheets(wsdata).Cells(lngRow, 2 + i) = Sheets(wsdata).Cells(3, 2 + i)
Next i

En het klopt helemaal.

Dat van plakken in cel 169 (kolom FM) heb ik voor een andere macro gebruik. Alles werkt.

Echter zie ik in de antwoorden op mijn vragen dat er meer wegen naar rome leiden. Natuurlijk probeer je, je code zo kort mogelijk te houden.
De code die jij geschreven hebt snap ik nu, ik zou alleen niet zelf een nieuwe kunnen maken.

Ik heb ook nog een andere vraag open staan waarin ik grafieken wil maken vannuit een database dmv macro's, hierbij is het autofilter denk ik ook een gewenst hulpmiddel. Er is nog geen opliossing voor!

Wederom enorm bedankt!
 
Hoe kom jij aan for i=1 to 18? Van kolom C tem kolom H is toch maar 6?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan