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

in een macro 'voorwaardelijk kopieren'

Status
Niet open voor verdere reacties.
nog 1 keertje wat hulp...

Hoi,

Bij nader inzien zou ik toch nog graag een kleine aanpassing willen maken in de code.

Op dit moment kopieert hij uit het tablad 'zoeken' volgens mij inprincipe de gehele rij die geselecteert is. Nou zou ik het alleen fijn vinden wanneer hij niet de gehele rij kopieert maar alleen cel 5 t/m 10 bijvoorbeeld.

Dit gebeurt wel wanneer hij de rij uit het werkblad "opdrachten" kopieert (kopieert alleen cel 3 t/m 11) maar ik krijg dit niet goed 'overgenomen' in de code waar dekopieer actie van het werkblad 'zoeken' wordt uitgevoerd.

(ik hoop dat ik het een beetje duidelijk kan uitleggen).

Hopelijk kunnen jullie me nog een keer helpen!

grz marion

De code zoals hij nu is:

Private Sub CommandButton6_Click()
Sheets("brief").Range("2:2").Delete Shift:=xlDown

Sheets("zoeken").Select
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("A1").AutoFilter
Set rng = ActiveSheet.AutoFilter.Range
Selection.AutoFilter Field:=2, Criteria1:="x"

If rng.Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
MsgBox "GEEN ADRES GESELECTEERD"
ActiveSheet.Range("A1").AutoFilter
Exit Sub
End If

If rng.Columns(1).SpecialCells(xlCellTypeVisible).Count > 2 Then
MsgBox "MEERDERE ADRESSEN GESELECTEERD"
ActiveSheet.Range("A1").AutoFilter
Exit Sub
End If

LRow = Worksheets("brief").Cells.Find("*", Range("A1"), xlFormulas, , xlByRows, xlPrevious).Row

ActiveSheet.AutoFilter.Range.Offset(1, 1).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).Copy
Worksheets("brief").Cells(LRow + 1, 1).PasteSpecial xlValues
ActiveSheet.Range("A1").AutoFilter

LCol = 7

Sheets("opdrachten").Select
ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("A1").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="x"
Aantal = ActiveSheet.AutoFilter.Range.Rows.Count
For x = 2 To Aantal
If Cells(x, 1).EntireRow.Hidden = False Then
Range(Cells(x, 3), Cells(x, 11)).Copy Worksheets("brief").Cells(LRow + 1, LCol)
LCol = LCol + 9
End If
Next x
ActiveSheet.Range("A1").AutoFilter

End Sub
 
Hoi Marion,

Vervang de lijn:

ActiveSheet.AutoFilter.Range.Offset(1, 1).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).Copy

eens door:

ActiveSheet.AutoFilter.Range.Offset(1, 0).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).Columns("E:J").Copy


Dan zouden enkel maar de cellen 5 (= col E) tot en met 10 (= col J) mogen gecopieerd worden.

….. niet echt getest ……

MVG - Marrosi
 
Hoewel ik stiekem niet anders had verwacht....

het werkt perfect!

Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan