Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 insérer ou supprimer le nombre de colonne qui convient

iliess

XLDnaute Occasionnel
bonjour
j'ai deux plage
1 feuil1 Source A4:E4
2 feuil2 Destination A4:C4

je souhaite mètre la plage dans la feuil2 on égalité avec la plage feuil1 Source (ajouter ou supprimer des colonne)
NB les trois dernière colonne dans la feuil2 Destination toujours reste après la plage
voici un code non complet

VB:
Sub inser()
Dim ShSOur As Worksheet, ShDesti As Worksheet
Dim lastColumnSour As Long, lastColumnDest As Long
Set ShSOur = ThisWorkbook.Worksheets("Source")
Set ShDesti = ThisWorkbook.Worksheets("Destination")
lastColumnSour = ShSOur.Cells(4, ShSOur.Columns.Count).End(xlToLeft).Column
lastColumnDest = ShDesti.Cells(4, ShDesti.Columns.Count).End(xlToLeft).Column - 3
If lastColumnSour < lastColumnDest Then
'ajouter le nombre colonne en moin
Else
'supprimer le nombre colonne en plus
End If
End Sub
 

Pièces jointes

  • Colonne.xlsm
    16.7 KB · Affichages: 7
Solution
Bonjour Iliess,
Un essai en PJ avec :
VB:
Sub Transferer()
    Application.ScreenUpdating = False
    With Sheets("Destination")
        For C = 1 To Application.Match("TOTAL1", .[4:4], 0) - 1
            .Cells(1, 1).EntireColumn.Delete
        Next C
    End With
    With Sheets("Source")
        N = Application.CountIfs(.[4:4], "*")
        .Range(.Cells(4, 1), .Cells(18, N)).Copy
    End With
    Sheets("Destination").Select
    [A4].Select
    Selection.Insert Shift:=xlToRight
    [A1].Select
End Sub
Je supprime toutes les colonnes de destination sauf les 3 dernières puis j'insère les colonnes présentes dans Source.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Iliess,
Un essai en PJ avec :
VB:
Sub Transferer()
    Application.ScreenUpdating = False
    With Sheets("Destination")
        For C = 1 To Application.Match("TOTAL1", .[4:4], 0) - 1
            .Cells(1, 1).EntireColumn.Delete
        Next C
    End With
    With Sheets("Source")
        N = Application.CountIfs(.[4:4], "*")
        .Range(.Cells(4, 1), .Cells(18, N)).Copy
    End With
    Sheets("Destination").Select
    [A4].Select
    Selection.Insert Shift:=xlToRight
    [A1].Select
End Sub
Je supprime toutes les colonnes de destination sauf les 3 dernières puis j'insère les colonnes présentes dans Source.
 

Pièces jointes

  • Colonne (1).xlsm
    18.8 KB · Affichages: 1

Discussions similaires

Réponses
3
Affichages
278
Réponses
12
Affichages
822
Réponses
49
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…