Copier/coller une ligne à une endroit précis

69test.xlsx (9.25 Ko)

Bonjour à tous!

J'ai un problème avec une macro que je n'arrive pas à trouver malgré tous les forum que j'ai consulté.

J'aimerai copier une ligne (feuille2) qui se trouve toujours à la même place et la coller sur la Feuille1. Jusque là tout va bien.

Mais j'aimerai que cette ligne se colle en face du numéro auquel elle correspond.

J'ai fait un fichier test pour que vous puissiez comprendre.

Merci d'avance!! =)

Bonjour,

Une proposition de macro

Sub Test()
Dim WsS As Worksheet, WsC As Worksheet
Dim C As Range
    Set WsS = Worksheets("Feuil2")
    Set WsC = Worksheets("Feuil1")
    Set C = WsC.Columns(1).Find(WsS.Cells(17, 1), , xlValues, xlWhole)
    If Not C Is Nothing Then
        WsS.Range("B17:H17").Copy C.Offset(, 1).Resize(, 7)
    End If
    Set C = Nothing: Set WsC = Nothing: Set WsS = Nothing
End Sub

A+

Bonjour,

J'ai un problème avec une macro que je n'arrive pas à trouver malgré tous les forum que j'ai consulté.

Très mauvaise méthode ! On commence par annalyser ce qu'on veut faire, le découper en opérations élémentaires distinctes, puis on peut écrire la macro !

Je dois reproduire une ligne dans une feuille en regard d'un repère en colonne A.

(On évite de penser copier-coller a-priori !!! on optera pour la solution qui paraîtra la plus simple et la plus rapide pour parvenir au résultat).

La ligne à reproduire se trouve sur une autre feuille, emplacement fixe. Chouette ! je vais nommer cette ligne, cela me simpliera l'opération : en col. A elle comporte la position que je dois retrouver pour positionner sa reproduction, je le laisse de côté et je nomme B17:H17, la partie à reproduire, [je nomme bêtement Ligne ].

Comme pas d'autre préparatif, je peux passer aux opérations:

1) Je dois récupérer la position à rechercher, je prévois une variable pour ça (pos par exemple). La valeur cherchée se trouve dans la cellule qui précède la plage que j'ai nommée, donc même ligne et colonne précédant la première cellule de la plage nommée : je vais simplement l'atteindre avec l'expression [Ligne].Cells(1, 0)

2) Je dois chercher la ligne où je dois reproduire ma plage, dans la colonne A de la feuille cible : l'utilisation de la fonction Match (=EQUIV) qui me renverra directement le numéro de ligne paraît approprié. Je prévois une variable pour le recueillir (lig par exemple)

3) Il reste à finaliser : la plage cible est sur la ligne que j'ai déterminée, elle commence en colonne B, je prends donc cette cellule comme base que je redimensionne sur le nombre de colonne de ma ligne à transférer, je dispose ainsi de la plage cible dont il ne me reste plus qu'à définir la valeur comme étant celle de la plage source. Sans copier-coller qui s'avère inutile.

On écrit donc ce qu'on vient d'énumérer :

Sub TftLigne()
    Dim pos%, lig%
    pos = [Ligne].Cells(1, 0).Value
    With Worksheets("Feuil1")
        lig = WorksheetFunction.Match(pos, .Columns("A"), 0)
        .Range("B" & lig).Resize(, [Ligne].Columns.Count).Value = [Ligne].Value
    End With
End Sub

Et voilà ! Plus qu'à tester.

Merci beaucoup pour vos réponse!!! La VBA de frangi marche très bien!!!

Que dois-je ajouter dans la VBA pour qu'elle me colle la ligne sous forme de valeur?

    If Not C Is Nothing Then
        C.Offset(, 1).Resize(, 7).Value = WsS.Range("B17:H17").Value
    End If

A+

Merci beaucoup!!!!

Au top!!!!!

Bonjour à tous,

Je suis nouveau sur le forum et sur VBA.

J'ai parcourus un peu le forum et ait trouvé pas mal de conseils très intéressants.

J'ai une question, qui va paraitre simple pour certain, mais qui me pose pas mal de soucis. Je m'explique.

J'ai un fichier excel avec pls onglet. Dans le premier qui s'appelle "MEX", j'ai une cellule "C7" avec un nombre aléatoire. Dans ce même onglet "MEX", j'ai des données en "E7", "E8", et "E9", qui changent en fonction du nombre aléatoire.

Dans un deuxième onglet "File", j'ai fait un Template avec en colonne B des chiffres de 1 à 10000 et en colonne D, E et F les résultats obtenus en E7, E8 et E9.

Je voulais savoir comment faire correspondre le copiage des cellules E7, E8 et E9 dans l'onglet "File" en colonne D E et F en face du numéro de la colonne B correspondant au nombre aléatoire dans l'onglet MEX en cellule C7.

Je joint le fichier correspondant.

Merci pour votre aide à tous.

26scenario.xlsx (248.36 Ko)

Tutur23 :

1) Tu ouvres un sujet pour exposer ton problème et poser ta question...

2) Tu mets à l'appui autant que possible un fichier correspondant exactement à ton exposé

Cordialement.

Merci pour ta réponse.

Je viens de poster le message

Rechercher des sujets similaires à "copier coller ligne endroit precis"