XL 2013 VBA : copier/coller + remplissage texte

xtech

XLDnaute Nouveau
Bonjour à tous,

habitué d'Excel mais pas du tout des macros, je sollicite votre aide aujourd'hui pour réaliser quelque chose qui vous paraîtra j'imagine très bête.

Etape 1 :
Je cherche à copier/coller des données d'une feuille "copie" allant de A3 jusqu'à la dernière cellule non-vide à droite puis en bas; puis les coller dans une feuille "collage" à partir de la première cellule vide de la colonne A.

J'ai actuellement un code de ce goût qui a l'air fonctionnel mais pas du tout optimisé :
Code:
Sheets("copie").Select
    Range("A3").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("collage").Select
    Range("A" & Cells(Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial xlPasteValues

Etape 2 :
Une fois la plage collée, je cherche à remplir les cellules de la colonne adjacente à droite avec un texte ("test") qui suivrait la plage que je viens de coller. Exemple : si ma plage collée fait A2:C10, "test" devrait être inscrit de D2 à D10. Et ce à chaque fois que je viendrai à activer ma macro pour coller une plage.

Le copier/coller semble être fonctionnel, mais remplir la colonne adjacente avec du texte qui prendrait en compte le remplissage des colonnes de la plage collée est parfaitement mystérieux à mon niveau...

Merci d'avance à vous :)
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : VBA : copier/coller + remplissage texte

Bonsoir
Juste une idée : si tu as commencé en VBA , pour ce style d'exercice mes "pères" m'avaient à l'époque conseillé
de faire du "Transfert" de données plutôt que du copier/coller qui peut entrainer des Pb ( ce que j'avais eu)
Donc il suffit d'écrire quelques boucles toutes simples pour faire du genre :
sheets("feuil2").range("A3:A10") = sheets("feuil1").range("A3:A10)
Là c'est juste un exemple , on peut faire avec du WITH worksheets .... suivi de .cells(row,column) et ensuite dans tous les cas , remplacer le "dur" ( comme A3) par des variables
Au départ il faut déjà étudier la concordance : Source > destination pour préparer ton code VBA
 

Paf

XLDnaute Barbatruc
Re : VBA : copier/coller + remplissage texte

Bonjour,

si j'ai bien compris, une solution possible:

Code:
 With Worksheets("copie")
    dercol = .Cells(2, .Columns.Count).End(xlToLeft).Column
    derlig = .Range("A" & .Rows.Count).End(xlUp).Row
    With Worksheets("collage")
        derl1 = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    End With
    .Range(Cells(3, 1), Cells(derlig, dercol)).Copy Worksheets("collage").Range("A" & derl1)
 End With
 With Worksheets("collage")
    .Range(.Cells(derl1, dercol + 1), .Cells(derl1 + derlig - 3, dercol + 1)) = "test"
 End With

A+
 

Discussions similaires

Réponses
11
Affichages
667

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87