Problème de méthode de selection VBA

Bonjour,

Mon code bug à partir de la ligne que j'ai mis en commentaire dans le code, c'est en rapport avec la méthode de selection mais je ne vois pas pourquoi cela ne fonctionne pas ...

Sub MAJ_BDD_Credit()

Dim wsbdd As Worksheet
Dim wsmaj As Worksheet
Dim wsmaj2 As Worksheet
Dim flag As Boolean

Set wsbdd = ActiveWorkbook.Sheets("BDD")
Set wsmaj = ActiveWorkbook.Sheets("MAJ")
Set wsmaj2 = ActiveWorkbook.Sheets("MAJ2")

j = 2
k = 1

For i = 1 To 17
    While Not IsEmpty(wsmaj.Cells(2, j)) = True

    flag = False

        If wsmaj.Cells(1, j).Value = wsbdd.Cells(1, i).Value Then
            'wsmaj.Cells(1, j).Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy

             While flag = False

               If IsEmpty(wsmaj2.Cells(1, k)) = True Then
                    Selection.Paste
                    flag = True
               Else
                k = k + 1
               End If

             Wend

        End If

        j = j + 1
    Wend

Next

End Sub

Merci d'avance pour votre aide

(PS: Je sais qu'il est préférable d'éviter les sélections mais je n'ai pas appris à faire ce genre d'action sans sélection... )

Bonjour,

et le message d'erreur c'est ?

A tester :

    With wsmaj
        .Range(.Cells(1, j), .Cells(1, j).End(xlDown)).Copy
    End With

mais si le soucis est sur wsmaj ou j comme on peut le supposer ça ne résoudra pas cette erreur.

eric

Merci ! cela fonctionne en partie puisque après ca j'ai fait un "selection.paste" qui m'affiche un bug...

capture msgerror

Le probleme ne venait pas du wsmaj en tout cas mais avec cette facon de faire je ne vois pas comment coller dans une autre page..

merci encore pour cette passe décisive

Bonjour,

Selection.Paste

Selection est la plage copiée, ce n'est sûrement pas là où tu veux coller.

    With Sheets("Feuil2")
        .Select
        .Range("A1").Select
        .Paste
    End With

eric

J'ai modifié la ligne qui est maintenant en commentaire dans le code et cela ne fonctionne pas

capture msger
Sub MAJ_BDD_Credit()

Dim wsbdd As Worksheet
Dim wsmaj As Worksheet
Dim wsmaj2 As Worksheet
Dim flag As Boolean

Set wsbdd = ActiveWorkbook.Sheets("BDD")
Set wsmaj = ActiveWorkbook.Sheets("MAJ")
Set wsmaj2 = ActiveWorkbook.Sheets("MAJ2")

j = 2
k = 1

For i = 1 To 17
    While Not IsEmpty(wsmaj.Cells(2, j)) = True

    flag = False

        If wsmaj.Cells(1, j).Value = wsbdd.Cells(1, i).Value Then

                With wsmaj
                 .Range(.Cells(1, j), .Cells(1, j).End(xlDown)).Copy
                End With

             While flag = False

               If IsEmpty(wsmaj2.Cells(1, k)) = True Then

                       'wsmaj2.Cells(1, k).Paste

                    flag = True
               Else
                k = k + 1
               End If

             Wend

        End If

        j = j + 1
    Wend

Next

End Sub

As-tu lu ma réponse ?

Oui je pensais que ca ne fonctionnait pas apres un essai mais j ai fait une erreu et ca marche merci!

Rechercher des sujets similaires à "probleme methode selection vba"