VBA - Sélection et copy de bloc

Bonjour à tous,

J'ai un tous petit souci de VBA.

Dans le fichier joint vous trouverez un petit code VBA qui me sert à :

  • Sélectionner un bloc matrice (de la ligne 7 inclus à la ligne 14 inclus). Ce bloc ne bouge pas il est masqué et toujours disponible.
  • Copier ce bloque et le positionner en dessous de la ligne 14. (Il me colle la sélection au dessus)
  • Grouper masquer le bloc d'origine.

Le petit problème que j'ai, concerne les offset (6, -8) enfin je pense.

Je voudrais que le bloc matrice soit toujours sélectionné et copié en dessous du dernier bloc existant. Peut importe le nombre de nvxbloc déjà créer.

Bon si vous avez une nouvelle approche pour éviter d'utiliser la fonction copy. je suis preneur avec explication.

Oui je sais c'est ridicule

16testnvxbloc.xltm (26.12 Ko)

Bonjour Franck,

Ci dessous, je te propose un code de remplacement avec mes commentaires :

Option Explicit 'GVS: Clause chaudement recommandée
Sub NvxBloc()
    Dim xCompteurX As Long  'GVS: Déclaration explicite des variables recommandée
    Dim lRow As Long

    'A placer en début de routine
    Application.ScreenUpdating = False 'Neutralise la visualisation
    Application.DisplayAlerts = False 'Neutralise les alertes

    xCompteurX = 0

' Votre routine

'===== Sub Creation()

'Calc = True 'Neutralisation pour calcul    'GVS: je n'ai pas compris cette ligne, je l'ai remplacée par la suivante
Application.Calculation = xlCalculationManual
'Copie du modèle
Range("NvxBlocBD").EntireRow.Hidden = False
Range("NvxBlocBD").Copy
'Insertion en dessous du dernier modèle copié
lRow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Cells(lRow + 2, 1).Select
ActiveSheet.Paste
'Range("I60000").End(xlUp).Offset(6, -8).Paste Shift:=xlDown
'Cells.EntireRow.Hidden = False
Range("NvxBlocBD").EntireRow.Hidden = True
'Range("I60000").End(xlUp).Offset(6, -8).Select

Application.CutCopyMode = False 'Vider le presse papier
Application.ScreenUpdating = True 'Active la visualisation
Application.DisplayAlerts = True 'Active les alertes
'Calc = False 'Activation pour calcul     'GVS: je n'ai pas compris cette ligne, je l'ai remplacée par la suivante
Application.Calculation = xlCalculationAutomatic

End Sub

Bonjour Gérard,

Haaaa c'est parfait.

C'est exactement ce qu'il fallait.

Un grand merci à toi.

Je te souhaite une excellente fin de journée.

Rechercher des sujets similaires à "vba selection copy bloc"