Autres Coller deux colonnes à la fois

bd.afaf

XLDnaute Junior
bonjour forum, 😁

je veux faire une macro qui me copie les colonnes B et F , pour les coller dans le 2ème tableau dans la colonne A et D .
Alors que ils ne sont pas dans e même ordre.
Voici un fichier d'exemple
 

Pièces jointes

  • coller 2 colonnes à la fois.xlsx
    12.6 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bd_afaf,
Un essai en PJ avec :
VB:
Sub Colle()
    Application.ScreenUpdating = False
    N = [Tableau7].Rows.Count
    For i = 1 To [Tableau5].Rows.Count
        [Tableau7].ListObject.ListRows.Add
        [Tableau7[Classes]].Item(N + i) = [Tableau5[Classe]].Item(i)
        [Tableau7[Periode3]].Item(N + i) = [Tableau5[Resultat]].Item(i)
    Next i
End Sub
 

Pièces jointes

  • coller 2 colonnes à la fois (1).xlsm
    18.4 KB · Affichages: 6

bd.afaf

XLDnaute Junior
Bonjour Bd_afaf,
Un essai en PJ avec :
VB:
Sub Colle()
    Application.ScreenUpdating = False
    N = [Tableau7].Rows.Count
    For i = 1 To [Tableau5].Rows.Count
        [Tableau7].ListObject.ListRows.Add
        [Tableau7[Classes]].Item(N + i) = [Tableau5[Classe]].Item(i)
        [Tableau7[Periode3]].Item(N + i) = [Tableau5[Resultat]].Item(i)
    Next i
End Sub
bonjour sylvanu

j'ai appliqué ton code dans une macro mais ça m'affiche un message d'erreur voici la macro:
 

Pièces jointes

  • Capture2.PNG
    Capture2.PNG
    45.4 KB · Affichages: 14

bd.afaf

XLDnaute Junior
Bonjour sylvanu ;), bd.afaf :),

@bd.afaf : Et si tu appellais la macro de Sylvanu à la fin de ta macro, ça donnerait quoi?!!!
VB:
Sub Mars
'ton code'
'
'
'appel code sylvanu'
call colle
End Sub
A+
1649328176280.png

Bonjour cp4,

bien sûr j'ai appliqué ma macro puis celle de sylvanu, et j'ai refais ça en ajoutant la " Call colle " après le code mais ça me donne un message d'erreur sur ce code, je sais pas prq?
 

job75

XLDnaute Barbatruc
Bonjour bd.afaf, sylvanu, cp4,

Une boucle For/Next est vraiment inutile :
VB:
Sub Copier()
With [Tableau7]
    [Tableau5].Columns(2).Copy .Cells(.Rows.Count + 1, 1)
    [Tableau5].Columns(6).Copy .Cells(.Rows.Count + 1, 4)
    If Application.CountBlank(.Columns(1)) Then .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'supprime les lignes vides
End With
End Sub
A+
 

bd.afaf

XLDnaute Junior
Bonjour bd.afaf, sylvanu, cp4,

Une boucle For/Next est vraiment inutile :
VB:
Sub Copier()
With [Tableau7]
    [Tableau5].Columns(2).Copy .Cells(.Rows.Count + 1, 1)
    [Tableau5].Columns(6).Copy .Cells(.Rows.Count + 1, 4)
    If Application.CountBlank(.Columns(1)) Then .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'supprime les lignes vides
End With
End Sub
A+
bonjour job75, sylvanu, cp4,

j'ai appliquée ta formule mais on me copie toujours les colonnes entres les deux demandés.
un Exemple trop simple : je veux copier la colonne B et E . je copie et je colle la colonne B et on me colle la colonne B et C et D et E.
Alors que moio je demande juste la colonne B et E non pas ce qui est entre eux .
Merci
1649334456185.png
 

job75

XLDnaute Barbatruc
@job,
Je voulais coller sans les différentes mises en forme. Pour éviter ça :
Sur le fichier du post #1 il n'y a pas de couleur de fond sur les colonnes B et F, les couleurs sont les couleurs automatiques des tableaux structurés.

Néanmoins on peut ne copier que les valeurs :
VB:
Sub Copier()
With [Tableau7]
    .Cells(.Rows.Count + 1, 1).Resize([Tableau5].Rows.Count) = [Tableau5].Columns(2).Value
    .Cells(.Rows.Count + 1, 4).Resize([Tableau5].Rows.Count) = [Tableau5].Columns(6).Value
    If Application.CountBlank(.Columns(1)) Then .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'supprime les lignes vides
End With
End Sub
 

bd.afaf

XLDnaute Junior
Bonjour job75, sylvanu cp4;

je suis désolée pour ce retard j'avais des empêchements,
j'ai trouvé que l'erreur revient au fait que mon tableau contient des formules dans les colonnes du milieu . du coup ça me copie toujours les données des colonnes du milieu
 

Discussions similaires

Réponses
9
Affichages
363