Copier une colonne sur dernière colonne vide

Bonjour,

je cherche la syntaxe ( dans un module VBA) qui me permettrait de copier la colonne "D" (qui sert de modèle (donc mise en forme conservée)) sur la dernière colonne vide "I" en l’occurrence.

La cerise sur le gâteau étant de vider la copie des données d'origine SAUF "Révision", "Nomenclature", "Donnée_1", "Donnée_2".

Allez, montrez moi que j'ai encore beaucoup à apprendre (ou que je ne comprends pas vite )

Merci !

40classeur1.xlsm (47.28 Ko)

Bonjour,

A tester.

57classeur1.xlsm (59.09 Ko)
Option Explicit
Option Private Module
Public Sub Copie()
Dim ws As Worksheet
Dim iCol As Integer
    Application.ScreenUpdating = False
    Set ws = Worksheets("Feuil1")
    With ws
        iCol = .Cells(1, Columns.Count).End(xlToLeft).Column + 1
        .Columns(4).Copy .Columns(iCol)
        .Range("D2,D4,D6,D8,D9:D236").ClearContents
    End With
    Set ws = Nothing
End Sub

Merci jean-Eric, c'est ça.

C'est à chaque fois avec cette partie de code que je bute:

    With ws
        iCol = .Cells(1, Columns.Count).End(xlToLeft).Column + 1
        .Columns(4).Copy .Columns(iCol)
        .Range("D2,D4,D6,D8,D9:D236").ClearContents
    End With

Juste un petit bémol....

ce sont les cellules de destination que je veux effacer, et non pas celles d'origine....

    With ws
        .Range("D2,D4,D6,D8,D9:D236").ClearContents
    End With

Comment faire pour "viser" les cellules de la nouvelle colone ?

Re,

Et ainsi

55classeur1.xlsm (88.83 Ko)

Ta dernière solution ne m'arrange pas des masses (pas du tout en fait)

Parce que ma procédure de copie est lancée à partir d'un Userfom et j'aimerais "récupérer" le moyen d'écrire dans la nouvelle colonne, et aussi éviter d'utiliser une autre Sheet.

Je marque "résolu" car ta première solution fera l'affaire.

merci

Re,

Je m'en doutais un peu.

Correction.

Cdlt.

66classeur1.xlsm (60.20 Ko)
Jean-Eric a écrit :

Re,

Je m'en doutais un peu.

Merci ! Là c'est le top !

Tout est dans...

 sCol = Split(Cells(1, iCol).Address(), "$")(1)

qui me permet d'affecter de nouvelles valeurs par:

 .Cells(2, sCol).Value = "Z"

Une dernière pour la route:

A quoi sert le "(1)" ici ?

 sCol = Split(Cells(1, iCol).Address(), "$")(1)

Re,

Fais une recherche sur Split et Address (Aide VBA - F1).

Cdlt.

Jean-Eric a écrit :

Re,

Fais une recherche sur Split et Address (Aide VBA - F1).

Cdlt.

Je dois dire que j'ai cédé à la facilité.

Je m'attendais à cette réponse, et ... c'est bien répondu

Merci en tout cas. Mon Pb est résolu.

Rechercher des sujets similaires à "copier colonne derniere vide"