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 Subje 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 SubBonne nuit
Bonjour tout le monde,
je te souhaite un bon weekend.
PS: du
Amicalement et a bientôt