Macro saisie & mise en forme

Bonjour,

je cherche a construire une macro afin d’accélérer la saisie de mes données...

Dans le mini fichier joint, je saisi manuellement A6 puis B6 (sous mon précédent travail) puis colle manuellement la sélection C6:D19 (attention le nombre de ligne de cette selection est variable !) qui se trouve alors etre ma sélection active...

Pouvez vous m'aider à rédiger une macro qui :

1 - RECOPIE les cellules A6:B6 dans les cellules A et B en face à la selection active

2 - SUPPRIME les 2 premières lignes entière de ma selection active

3 - POSITIONNE le curseur dans la première cellule vide (afin de poursuivre mes saisies)

Merci d'avance à celui ou ceux qui s'interesseront à mon problème.

Manu.

7dde-aide1.xlsx (8.62 Ko)

Bonjour,

une proposition

Sub aargh()
    fr = Selection.Row
    lr = Selection.Rows.Count
    Cells(fr, 1).Resize(lr, 2).Value = Range("a6:B6").Value
    Rows(fr & ":" & fr + 1).Delete shift:=xlUp
    Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 1).Select
End Sub

c'est presque parfait,

toutefois

Range("a6:B6").Value

ne selectionne (et ne copie donc) pas les données correspondants à la selection active...

en tout cas merci pour la rapidité.

rebonjour,

reexplique car j'ai pas compris. Mets un exemple (situation avant, selection, situation après)

la macro fonctionne parfaitement, si ce n'est qu'elle va selectionner et copier A6:B6 quel que soit l'avancement de mes saisies...

si je suis par exemple arrivé à la saisir sur la ligne 218, il faudrait selectionner A218:B218...

qu'en penses-tu ?

Bonjour,

regarde si ceci te convient

Sub aargh()
    fr = Selection.Row
    lr = Selection.Rows.Count
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(fr, 1).Resize(lr, 2).Value = Range("a" & dl & ":B" & dl).Value
    Rows(fr & ":" & fr + 1).Delete shift:=xlUp
    Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 1).Select
End Sub

et bien ça semble fonctionner à merveille... Un grand MERCI, c'est très sympa.

j'essaie par contre depuis tout à l'heure de comprendre le cheminement de ton code...

et je t'avoue que j'ai bien du mal...

pourais-tu me l'expliquer rapidement (dans la macro) ? Enfin, si c'est possible, n'importe comment MERCI encore.

Manu


juste une autre question :

si au lieu de 2 cellules (colonne A:B), on veut en copier 4 (A:D) comme dans le nouveau fichier ?

que doit-on modifier dans ton code ?

Manu

3dde-aide2.xlsm (14.61 Ko)

bonjour,

code adapté et commenté

Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+w
'

        fr = Selection.Row ' première ligne de la selection
        lr = Selection.Rows.Count 'nombre de lignes de la sélection
        dl = Cells(Rows.Count, 1).End(xlUp).Row 'dernière ligne utilisée en colonne 1=N° de ligne à copier
        Cells(fr, 1).Resize(lr, 4).Value = Range("A" & dl & ":D" & dl).Value 'copie colonnes A à D de ligne dl en regard de la selection, changer le 4 et A et D si autre intervalle à copier
        Rows(fr & ":" & fr + 1).Delete shift:=xlUp 'suppression des 2 premières lignes de la sélection
        Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 1).Select 'positionnement sur la première ligne disponible (sur base de la colonne E)
End Sub

super !

Merci

Rechercher des sujets similaires à "macro saisie mise forme"