Probleme activation CommandButton via userform

Bonsoir Toult le monde,

Me revoila; après plusieurs recherches j'ai trouvé un code pour faire des deplacement de lignes entre divers feuilles ,je l'ai adapté a mes besoins il fonctionne tres bien, j'ai crée un boutton sur mon userform et c'est la que j'ai un probleme, je ne sais pas si c'est normal: en faite le code fonctionne seulement si la feuille (la où deplace les informations) est active, parexemple je veux faire les déplacements depuis la feuille 2 vers la feuille 3 , si je lance la macros depuis mon userform et je suis sur la feuille 2 cela fonctionne bien mais si je lance la macros pour faire la meme chose en etant sur la feuille 1 rien ne se passe.

Donc ce que je veux s'il vous plait c'est fonctionner mon code via le boutton du userform sans etre obligé devant une feuille precise.

voici le code:

Private Sub CommandButton1_Click()
  CopieSupprime Worksheets("Feuil2"), Worksheets("Feuil3")
  End Sub

Sub CopieSupprime(FeOrigine As Worksheet, FeDestination As Worksheet)
     Dim Ligne As Long
    Dim I As Long

       With FeOrigine
        Ligne = .Cells.Find("*", .[A1], -4123, , 1, 2).Row
    End With

        For I = Ligne To 1 Step -1
        If Range("B" & I) = "BERNARD" Then
                FeOrigine.Rows(I).EntireRow.Copy _
                FeDestination.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                FeOrigine.Rows(I).EntireRow.Delete
        End If
    Next I

End Sub

je vous joint mon document si cela peut etre utile.

En vous remerciant et en vous souhaitant un bon weekend

Amicalement

Bonsoir

En étant sur la "Feuil1" et que tu cherchais "BERNARD" tu le cherchais dans la "Feuil1" et non dans "FeOrigine"

Ton End With était mal placé

Sub CopieSupprime(FeOrigine As Worksheet, FeDestination As Worksheet)

    Dim Ligne As Long
    Dim I As Long

    'recherche la dernière ligne non vide de la feuille
    With FeOrigine
        Ligne = .Cells.Find("*", .[A1], -4123, , 1, 2).Row

      'boucle sur les lignes de la feuille "FeOrigine"
      'en partant du bas (pour pouvoir supprimer) et colle dans
      'la feuille "FeDestination" la ligne entière à la suite
      'des autres puis supprime la ligne
      For I = Ligne To 1 Step -1
          If .Range("B" & I) = "BERNARD" Then

                  .Rows(I).EntireRow.Copy _
                  FeDestination.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                  .Rows(I).EntireRow.Delete
          End If
      Next I
    End With

End Sub

Bonne nuit

Bonjour tout le monde,

Banzai64 ,

beaucoup ca fonctionne très bien .

je te souhaite un bon weekend.

PS: du prévu pendant un moment alors profite-en .

Amicalement et a bientôt

Rechercher des sujets similaires à "probleme activation commandbutton via userform"