Copier coller en boucle

Bonjour à tous,

Je suis nouveau sur le forum, mais vous suis depuis longtemps. J'en profite donc pour vous remercie pour ces nombreuses fois où vous m'avez permis de résoudre quelques problèmes.

Aujourd'hui je dois travailler une fichier pour le travail

Mon objectif est de copier la valeur de C1 (BASE 1) puis de la coller len F2 en écrasant la donnée d'origine

Puis H1 (Base 2) en K2

Puis M1 en P2

Soit de 6 en 6 vers la droite

Et ainsi de suite jusqu'à ce qu'il n'y ait plus de valeur. Dans mon cas je dois aller jusqu'à la colonne CKW.

Je joins une bout de mon fichier que j'ai modifié,

J'espère que vous saurez m'aider.

Bonne journée à tous

16fichier-test.xlsx (223.74 Ko)

Bonjour,

Sub Copier()
    Dim i%
    With ActiveSheet
        For i = 3 To 2337 Step 5
            .Cells(2, i + 3).Value = .Cells(1, i).Value
        Next i
    End With
End Sub

Cordialement.

Bonjour MFerrand,

Merci pour votre réactivité et votre aide, ça fonctionne très bien.

J'ai à nouveau besoin d'aide sur ce même fichier. Je souhaite supprimer toutes les colonnes à partir de la colonne C(incluse) autres que F,K,P etc. L'idée est de conserver uniquement les colonnes dans lesquelles nous avons fait la copie via le code précédent.

Plus simplement :

Supprimer A,B C D E G H I J L M O etc ...

Conserver les colonnes F K N.

Bien sûr, j'ai essayé de trouver une solution, notamment via le code suivant. Mais au bout de 10 minutes de chargement, rien ne se passe... C'est trop long pour un usage professionnel. Je suis mauvais en VBA, enfin je commence donc j'ai vraiment besoin d'aide...

A travers ce code, je supprimais la première ligne, puis toute les colonnes dans lesquelles se trouver les intitulés indésirables

Sub SupprColonne2()

Rows(1).EntireRow.Delete

Dim cL%, i%

cL = Cells(1, 5000).End(xlToLeft).Column

For i = cL To 1 Step -1

If Cells(1, i) = "CA" Or _

Cells(1, i) = "QTE" Or _

Cells(1, i) = "PRX_MOYEN" Or _

Cells(1, i) = "DN" Then Columns(i).Delete

Next i

End Sub

Merci encore, et merci d'avance

Cdt

Re,

Essaie ceci :

Sub SupprColonnes()
    Dim i%
    i = 1
    With ActiveSheet
        Do
            .Cells(2, i + 1).Resize(, 4).EntireColumn.Delete
            i = i + 1
        Loop While .Cells(2, i + 1) <> ""
        .Columns("A").Delete
    End With
End Sub

(Si tu veux accélérer, il faut désactiver la mise à jour de l'affichage, et le rétablir à la fin.)

Cordialement.

Encore Merci MFerrand,

Suite à votre conseil voici ce que j'ai ajouté en début et fin de code.

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

Concernant le code que vous m'avez donné, peut ont modifier un petit détail que j'ai dû oublier de mentionner ?

Les colonnes A et B ne doivent pas être supprimées. Elles sont la base de mon fichier.

Sinon, les colonnes supprimées sont les bonnes.

Merci

Sub SupprColonnes()
    Dim i%
    i = 3
    With ActiveSheet
        .Cells(2, i).Resize(, 3).EntireColumn.Delete
        Do
            .Cells(2, i + 1).Resize(, 4).EntireColumn.Delete
            i = i + 1
        Loop While .Cells(2, i + 1) <> ""
    End With
End Sub

Cela devrait s'ajuster comme ça.

Mferrand,

Merci pour cette nouvelle réponse.

Jusqu'à la colonne R, ce sont les bonnes colonnes qui sont copiées.

A partir de la colonne S, ce sont toutes les colonnes "PRX_MOYEN" qui le sont.

Est ce normal ?

Pour info, je viens de vérifier l'enchainement des colonnes. C'est toujours le même

CA, QTE, PRX_MOYEN, VMM, DN

Ci dessous le code

Sub SupprColonnes()

Application.ScreenUpdating = False

Sheets("Ventes").Activate

Dim i%

i = 3

With ActiveSheet

.Cells(2, i).Resize(, 3).EntireColumn.Delete

Do

.Cells(2, i + 1).Resize(, 4).EntireColumn.Delete

i = i + 1

Loop While .Cells(2, i + 1) <> ""

End With

Application.ScreenUpdating = True

End Sub

Si je compte bien : ça supprime d'abord CDE, conserve F et ensuite cela supprime à chaque fois 4 colonnes et conserve K P U... Les anciens car entretemps les lettres ont changé : F est devenu C et K est devenu H. Après suppression de DEFG, H devient D et l'ancien P est devenu I. En supprimant EFGH, il devient E. Ensuite on supprime FGHI et l'ancien se retrouve ramené à F. Ainsi de suite.

Normalement, si la structure est conforme, cela devrait coller : après le départ où l'on ne supprime par exception que 3 colonnes en conservant la suivante, ensuite on supprime à chaque fois 4 colonnes pour conserver la 5e en incrémentant de 1.

Rechercher des sujets similaires à "copier coller boucle"