richard1970
Terugkerende gebruiker
- Lid geworden
- 12 mei 2005
- Berichten
- 2.663
Hoi,
Een klant van ons heeft een Excelgedrocht gemaakt en daarin moeten de waarden van samengevoegde cellen gekopieerd worden naar andere samengevoegde cellen.
Het lukt me wel dit in VBA te zetten door eerst de samenvoeging er af te halen en er later weer op te zetten, maar ik hoop dat het stukken eenvoudiger kan. Voor één bereik heb ik:
De uitdaging zit 'm in het aanpassen van de rode bereiken. Na V39:AB42, komen er nog AO39:AU39, BH39:BN42 en CA39:CG42. (Telkens 19 kolommen naar rechts). Dit staat in de derde subroutine.
Vervolgens wordt dit riedeltje herhaald voor de rijen 82:85, 125:128 en telkens 43 rijen verder naar beneden tot aan rij 1071, telkens ook weer 19 kolommen naar rechts.
Ik heb al geadviseerd de samenvoeging er af te halen, maar dat moet er per se op omdat de invoer te lang kan worden maar wel leesbaar geprint moet kunnen worden.
De handelingen zijn erg gestructureerd, maar ik heb niet de kennis om in VBA er een loop van te maken.
Is dat wel mogelijk?
Richard
Een klant van ons heeft een Excelgedrocht gemaakt en daarin moeten de waarden van samengevoegde cellen gekopieerd worden naar andere samengevoegde cellen.
Het lukt me wel dit in VBA te zetten door eerst de samenvoeging er af te halen en er later weer op te zetten, maar ik hoop dat het stukken eenvoudiger kan. Voor één bereik heb ik:
Code:
Sub RM_merge_cells()
With Selection
.ShrinkToFit = True
.MergeCells = True
End With
End Sub
Code:
Sub RM_unmerge_cells()
With Selection
.ShrinkToFit = False
.MergeCells = False
End With
End Sub
Code:
Sub RM_copy_merged_cells()
Application.ScreenUpdating = False
Range("[COLOR="red"]V39:AB42[/COLOR]").Select
Call RM_unmerge_cells
Range("C39:I42").copy
Range("[COLOR="red"]V39[/COLOR]").PasteSpecial paste:=xlPasteValues
Range("[COLOR="red"]V39:AB39[/COLOR]").Select
Call RM_merge_cells
Range("[COLOR="red"]V40:AB40[/COLOR]").Select
Call RM_merge_cells
Range("[COLOR="red"]V41:AB41[/COLOR]").Select
Call RM_merge_cells
Range("[COLOR="red"]V42:AB42[/COLOR]").Select
Call RM_merge_cells
Application.ScreenUpdating = True
End Sub
De uitdaging zit 'm in het aanpassen van de rode bereiken. Na V39:AB42, komen er nog AO39:AU39, BH39:BN42 en CA39:CG42. (Telkens 19 kolommen naar rechts). Dit staat in de derde subroutine.
Vervolgens wordt dit riedeltje herhaald voor de rijen 82:85, 125:128 en telkens 43 rijen verder naar beneden tot aan rij 1071, telkens ook weer 19 kolommen naar rechts.
Ik heb al geadviseerd de samenvoeging er af te halen, maar dat moet er per se op omdat de invoer te lang kan worden maar wel leesbaar geprint moet kunnen worden.
De handelingen zijn erg gestructureerd, maar ik heb niet de kennis om in VBA er een loop van te maken.
Is dat wel mogelijk?
Richard