Copier un tableau en cours

Bonjour,

Je souhaite copier une plage de cellules sur laquelle un utilisateur travaille et la dupliquer plus bas.

1 ère contrainte l'utilisateur copie son tableau et masque ensuite les résultats une fois la semaine terminée.

Du coup on ne peut pas se baser sur une range de cellule.

J'ai commencé le code avec l'enregistreur mais cela n'est pas reproductible :

Sub Macro2()

    Range("A278:AW413").Select
    Selection.Copy
    ActiveWindow.SmallScroll Down:=12
    Range("A416").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=141
End Sub

Or il faut que cela puisse se reproduire.

Il faudrait definir cette plage comme range sans reference aux cellules? Est-ce possible?

En vous remerciant par avance et bonne journée.

ps: fichier en exemple en PJ

Bonjour,

D'abord ta macro, en VBA, elle s'écrit comme ça :

Sub Macro2()
    Range("A278:AW413").Copy Range("A416")
End Sub

Il faut oublier un peu l'enregistreur...

Ensuite une plage sans référence ça n'existe pas ! Disons que si tu n'as pas de références, tu ne peux l'atteindre.

Donc il faut l'identifier. Pour l'identifier avoir un critère. Tu la reconnais à quoi quand tu la vois !!!

A278 est vide (donc pas un critère).

A413 la dernière cellule utilisée en colonne A (peut être un critère)

On peut parcourir toutes les lignes dans un sens ou l'autre, à la recherche des critères, mais il faut en avoir !

Une fois trouvé ligne de début et ligne de fin, ya plus ka !

Hello,

Merci pour ta réponse, en fait la première cellule c'est le problème vu que c'est toujours les mêmes info vu que c'est du copier coller je veux dire la A278 sera toujours vide.

En fait je sais pas comment chercher la première cellule vu que c'est toujours le même format.

Peut être tant que cellule non masqué et valeur en A278 = vide ??

Une cellule vide n'est pas vraiment un critère adéquat, mais on peut en trouver d'autres.

La question est qu'il y a plusieurs tableaux de structure assez semblable : comment les différencier pour savoir où commence ceux que tu veux ?

Yep,

Bon sur les conseils de MFerrand j'ai développé un truc qui fonctionne.

Voila je poste le code et le fichier cela peut servir aux menbres.

Sub controlcopiercoll(Row As Integer)

' controlcopiercoll Macro

 Range(Cells(Row, 49), Cells(Row + 135, 1)).Select

End Sub

Sub firstcell()

    Dim ws As Worksheet
    Dim DerLigne As Long
    Dim i As Long
    Dim a As Integer

    On Error GoTo message

    Application.ScreenUpdating = False

    Set ws = Sheets("test")

'On attrape la derniére ligne vide
    DerLigne = ws.Cells(65536, 1).End(xlUp).Row

'boucle

For i = 1 To DerLigne

    If Not Rows(i).Hidden And Cells(i, 1).Value = "EB" And Cells(i, 2).Value = " Vessel" Then
        a = i - 1
        'MsgBox a
        Call controlcopiercoll(a)
    End If

Next

    If False Then
    message:
        reponse = MsgBox("Erreur flag.", vbCritical + vbOKOnly, "failed")
    End If

End Sub

Je sais pas si c'est la solution la plus simple lol.

Rechercher des sujets similaires à "copier tableau cours"