Fonctionnement des variables

Bonjour, je souhaiterais savoir quelle est le problème sur le second code, qui ne fonctionne pas, par rapport au 1er. Il m'affiche "Qualificateur incorrect" et ne donne rien. J'ai juste remplacé les "Cells" par les variables "Cellule1", "Cellule2" et "Cellule 3".

Code 1
:

Sub test()

Dim ligne As Integer
Dim colonne As Integer
Dim Cellule1 As String
Dim Cellule2 As String
Dim Cellule3 As String

Workbooks("Classeur25.xlsm").Activate

'Sheets("Données").Activate

dercol = Sheets("Données").Cells(1, Columns.Count).End(xlToLeft).Column

Sheets.Add.Name = "Feuil3"

Sheets("Données").Activate

For colonne = 1 To dercol
    Sheets("Données").Activate
    Cellule1 = Cells(1, colonne)
    Cellule2 = Cells(2, colonne)
    Cellule3 = Cells(3, colonne)
        If Cells(2, colonne) Like "*PART_P17_POP*" Then
        i = i + 1
        Cells(1, colonne).Copy Sheets("Feuil3").Cells(1, i)
        Cells(2, colonne).Copy Sheets("Feuil3").Cells(2, i)
        Cells(3, colonne).Copy Sheets("Feuil3").Cells(3, i)
        End If
Next colonne

End Sub

Code 2 :

Sub test()

Dim ligne As Integer
Dim colonne As Integer
Dim Cellule1 As String
Dim Cellule2 As String
Dim Cellule3 As String

Workbooks("Classeur25.xlsm").Activate

'Sheets("Données").Activate

dercol = Sheets("Données").Cells(1, Columns.Count).End(xlToLeft).Column

Sheets.Add.Name = "Feuil3"

Sheets("Données").Activate

For colonne = 1 To dercol
    Sheets("Données").Activate
    Cellule1 = Cells(1, colonne)
    Cellule2 = Cells(2, colonne)
    Cellule3 = Cells(3, colonne)
        If Cells(2, colonne) Like "*PART_P17_POP*" Then
        i = i + 1
        Cellule1.Copy Sheets("Feuil3").Cells(1, i)
        Cellule2.Copy Sheets("Feuil3").Cells(2, i)
        Cellule3.Copy Sheets("Feuil3").Cells(3, i)
        End If
Next colonne

End Sub

Merci beaucoup !

Bonjour,

Dans votre exemple Cells renvoie un objet Range mais vous le définissez comme une chaîne de caractère string, ce n'est pas compatible.

Donc je dirais :

'Macro 1
Cellule1 = Cells(1, colonne).Address

'Macro 2
Range(Cellule1).Copy Sheets("Feuil3").Cells(3, i)

Cdlt,

Merci, effectivement cela fonctionne !

Je rencontre une autre difficulté entre deux codes. Le premier fonctionne, le deuxième nom, le problème étant lié à la variable "selection ".

Code 1 :

Public Sub test()

Dim dercol2 As Integer

Workbooks("Classeur25.xlsm").Activate
Sheets("Feuil1").Activate
dercol2 = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(2, dercol2)).Copy Range(Cells(4, 1), Cells(4, dercol2))

End Sub

Code 2 :

Public Sub test()

Dim dercol2 As Integer
Dim selection As Range

Workbooks("Classeur25.xlsm").Activate
Sheets("Feuil1").Activate
dercol2 = Cells(1, Columns.Count).End(xlToLeft).Column
selection = Range(Cells(2, 1), Cells(2, dercol2))
selection.Copy Range(Cells(4, 1), Cells(4, dercol2))

End Sub
Merci encore

Bonjour,

Je crois que Selection est un mot réservé sous VBA. On ne peux pas l'utiliser comme variable :

Dim PLAGE As String
Workbooks("Classeur25.xlsm").Activate
Sheets("Feuil1").Activate
dercol2 = Cells(1, Columns.Count).End(xlToLeft).Column
PLAGE = Range(Cells(2, 1), Cells(2, dercol2)).Address
Range(PLAGE).Copy Range(Cells(4, 1), Cells(4, dercol2))

Cdlt,

Rechercher des sujets similaires à "fonctionnement variables"