Copier les informations d'une colonne et la coller a la colonne d'aprés

bonsoir a tous, sv)p besoin de votre aide

Sub Desordre()
'declaration de variable
         Dim WS_Count As Integer
         Dim i As Integer
         Dim array_elt() As String
         Dim array_cell() As String
         Dim bigrng As Range
         Dim ok As Boolean
         Dim Ligne, Colonne, nbr As Integer
         Ligne = 2
         Colonne = 1
         Set ws = ActiveWorkbook.Sheets("Fusion_Step2")
         WS_Count = ActiveWorkbook.Worksheets.Count
         Set bigrng = ws.Range("A1", "A1")
         Dim rng, rng1 As Range
         Dim nbrligne, nbrcol As String
'Recuperation de la plage de travail
        last_cellulecc = Split(ws.UsedRange.Address, "$")(3) + Split(ws.UsedRange.Address, "$")(4)
        Set rng = ws.Range("A1", last_cellulecc)
        nbligne = Range("A1", last_cellulecc).Rows.Count
        nbrcol = Range("A1", last_cellulecc).Columns.Count
 t = 0
 i = 1
 l = 1
'Creation de la premiere colonne
t = nbligne - 1
 For i = 1 To rng.Columns.Count
    'MsgBox rng.Cells(t, i)
    ws.Cells(i, nbrcol + 5) = rng.Cells(t, i).Value
 Next i
'Creation de la deuxieme colonne
 t = nbligne - 2
 For i = 1 To Range("A1", last_cellulecc).Columns.Count
    ws.Cells(i, nbrcol + 6) = rng.Cells(t, i).Value
 Next i
'Creation de la troisieme colonne
 t = nbligne - 3
 For i = 1 To Range("A1", last_cellulecc).Columns.Count
     ws.Cells(i, nbrcol + 7) = rng.Cells(t, i).Value
 Next i
'Creation de la quatrieme colonne
 t = nbligne - 4
 For i = 1 To Range("A1", last_cellulecc).Columns.Count
     ws.Cells(i, nbrcol + 8) = rng.Cells(t, i).Value
 Next i
'Creation de la cinquieme colonne
 t = nbligne - 5
 For i = 1 To Range("A1", last_cellulecc).Columns.Count
     ws.Cells(i, nbrcol + 9) = rng.Cells(t, i).Value
 Next i

'construction de la sixieme colonne
t = (nbligne - 6) / 2

If (nbligne - 6) Mod 2 > 0 Then
    p = (nbligne - 6 - 1) / 2 + 1

    For r = 1 To p
         For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 10) = rng.Cells(r, i).Value
             l = l + 1
         Next i
    Next r
Else
     p = (nbligne - 6) / 2
    For r = 1 To p
         For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 10) = rng.Cells(r, i).Value
             l = l + 1
         Next i
    Next r
End If
 'construction de la septieme colonne
 l = 1
 For r = p + 1 To nbligne - 6
         For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 11) = rng.Cells(r, i).Value
             l = l + 1
         Next i
    Next r
          For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 11) = rng.Cells(nbligne, i).Value
             l = l + 1
         Next i
           Set rng1 = ws.Range(ws.Cells(1, nbrcol + 5), ws.Cells(l + 2, nbrcol + 11))

For f = 1 To 9 + 3
    For i = 1 To ws.Range(ws.Cells(1, nbrcol + 5), ws.Cells(l, nbrcol + 11)).Rows.Count
    ws.Cells(i, f) = rng1.Cells(i, f)
    Next i
Next f

         'rng.Cells.Clear
         rng1.Cells.Clear
'construction de la huitieme colonne

End Sub

la macro consitera a copier la 7eme colonne pour la coller a la 8eme colonne

ce fichier est celui qui implémente ma macro

bonjour

salut au passage franck

en B1 tu mets "=A1"

ça suffit pour mettre B1 en A1

pas de VBA

simplicité, sobriété, fiabilité

amitiés à tous

bonjour

salut au passage franck

en B1 tu mets "=A1"

ça suffit pour mettre B1 en A1

pas de VBA

simplicité, sobriété, fiabilité

amitiés à tous

Merci bien pour votre intervention Jmb, je n'arrive pas vraiment a vous cerner, svp un exemple

'construction de la septieme colonne
 l = 1
 For r = p + 1 To nbligne - 6
         For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 11) = rng.Cells(r, i).Value
             l = l + 1
         Next i
    Next r
          For i = 1 To Range("A1", last_cellulecc).Columns.Count
             ws.Cells(l, nbrcol + 11) = rng.Cells(nbligne, i).Value
             l = l + 1
         Next i
           Set rng1 = ws.Range(ws.Cells(1, nbrcol + 5), ws.Cells(l + 2, nbrcol + 11))

For f = 1 To 9 + 3
    For i = 1 To ws.Range(ws.Cells(1, nbrcol + 5), ws.Cells(l, nbrcol + 11)).Rows.Count
    ws.Cells(i, f) = rng1.Cells(i, f)
    Next i
Next f

mon code doit juste copier cette colonne apres les modification que j'effectue dessus.

svp besoin d'aide

re

je veux dire qu'il est inutile et même nuisible de recopier des données en dur (que ce soit avec VBA ou avec clavier/souris)

une donnée on la met une fois pour toutes dans une cellule. On ne la touche plus (sauf pour la modifier volontairement)

et on l'utilise dans des milliers d'autres cellules sans besoin de la recopier, dans des formules par exemple (une égalité est une formule comme je te le rappelais dans mon message précédent), ou dans des TCD ou des graphiques, ou des requêtes.

à quoi te sert de recopier des données ?

à te relire

Merci M. Jmd pour votre intervention en fait, la raison par la quelle je recopie est la suivante

ma macro génére 7 et moi j'aimerais que la huitième colonne soit identique a la 7eme colonne et c'est la raison pour la quelle j'aimerais faire une macro ou intégrer une instruction de plus qui fera la copie ou dupliquer la 7eme colonne pour former la 8eme colonne.

j'attend votre aide svp

re

à qoi ça sert ?

et plus à la base de ta problématique : quel est le BUT de ton fichier ?

car en pratique on n'a jamais besoin de recopier (et encore moins des colonnes)

on voudrait en savoir plus, beaucoup plus

amitiés

Rechercher des sujets similaires à "copier informations colonne coller"