Initialisation d'une plage de cellules

nikkss

XLDnaute Nouveau
Bonjour le forum,

Voilà mon soucis, j'aimerai copier des cellules d'un tableau vers un emplacement différent sur la même feuille.

Ces cellules à copier sont sur la même ligne et sur des colonnes pas forcément côte à côte.
Les cellules de destination seront, elles, sur des colonnes côte à côte.
(J'espère que je suis clair :confused:)

Voici mon code pour y voir un peu mieux:
Code:
Sub fabrication_tableau_export()
Dim i, j As Integer
Dim colonne_BB, cellule3, maligne_export, cell As Range

Set wbBDD_SIM = ActiveWorkbook
derliBDD_SIM = wbBDD_SIM.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

With wbBDD_SIM.Sheets(1)
    Set colonne_BB = Range("BB4:BB" & derliBDD_SIM)
    i = 5
    j = 76
    For Each cellule3 In colonne_BB
        If cellule3.Value = "" Then
            GoTo suivant2
            Else: Set maligne_export = Sheets(1).Range("O" & cellule3.Row, "R" & cellule3.Row, "S" & cellule3.Row, "BA" & cellule3.Row, "BB" & cellule3.Row, "BC" & cellule3.Row, "BD" & cellule3.Row, "BE" & cellule3.Row)
            For Each cell In maligne_export
                cell.Copy Destination:=Sheets(1).Range(lettre_col(j) & i)
                i = i + 1
                j = j + 1
            Next
        End If
suivant2:    Next
End With

End Sub

Public Function lettre_col(n As Variant)
lettre_col = Split(Cells(1, n).Address, "$")(1)
End Function

J'ai une erreur sur la ligne de "maligne_export".

Une idée?

Merci!!
 

nikkss

XLDnaute Nouveau
Re : Initialisation d'une plage de cellules

Pour info, j'ai réussis avec la méthode "Union".

Sub fabrication_tableau_export()
Dim i, j As Integer
Dim colonne_BB, cellule3, cell As Range
Dim maligne_export As Variant

Set wbBDD_SIM = ActiveWorkbook
derliBDD_SIM = wbBDD_SIM.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

With wbBDD_SIM.Sheets(1)
Set colonne_BB = Range("BB4:BB" & derliBDD_SIM)
i = 5
j = 76
For Each cellule3 In colonne_BB
If cellule3.Value = "" Then
GoTo suivant2
Else: Set maligne_export = Application.Union(Range("O" & cellule3.Row), Range("R" & cellule3.Row), Range("S" & cellule3.Row), Range("BA" & cellule3.Row), Range("BB" & cellule3.Row), Range("BC" & cellule3.Row), Range("BD" & cellule3.Row), Range("BE" & cellule3.Row))
For Each cell In maligne_export
cell.Copy Destination:=Sheets(1).Range(lettre_col(j) & i)
j = j + 1
Next
End If
i = i + 1
j = 76
suivant2: Next
End With

End Sub
 

Discussions similaires

Réponses
0
Affichages
153

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine