Résolu Excel : Couper coller avec conditions sur une autre feuille

spooty67

Nouveau membre
Bonjour à toutes et tous,

J'ai besoin de votre aide concernant un fichier Excel 2010.

Voici mon problème :

J'ai un fichier dans un onglet (Base de données) qui comprend plusieurs colonnes et plusieurs lignes.

J'aimerais pouvoir créer un bouton qui me permet de couper la ligne et la coller dans un autre onglet (Refus) si le contenu de la colonne "P" indique le texte "OR". Il faudrait donc que la ligne disparaisse de l'onglet "base de données" pour ensuite apparaître en entier dans l'onglet "Refus".

J'espère avoir été assez clair dans mon descriptif et vous remercie par avance de votre précieuse aide !

Meilleures salutations

 

spooty67

Nouveau membre
Re bonjour,

J'ai trouvé une super solution, mais il manque juste un détail. J'arrive à effectuer le couper coller, et ça fonctionne très bien. Il me manque cependant juste un code qui me permet de supprimer les lignes laissées en blanc après l'opération.

Quelqu'un peut-il m'aider svp ?

Merci d'avance.

Private Sub CommandButton1_Click()

a = Worksheets("Base de données").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To a

If Worksheets("Base de données").Cells(i, 16).Value = "OR" Then

Worksheets("Base de données").Rows(i).Cut
Worksheets("Refus").Activate
b = Worksheets("Refus").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Refus").Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("Base de données").Activate

End If


Next

End Sub

 

drul

Obscur pro du hardware
Staff
Salut, une solution:
Code:
Private Sub CommandButton1_Click()

a = Worksheets("Base de données").Cells(Rows.Count, 1).End(xlUp).Row

For i = a To 2 Step -1
    If Worksheets("Base de données").Cells(i, 16).Value = "OR" Then
        Worksheets("Base de données").Rows(i).Copy Worksheets("Refus").Cells(Rows.Count, 1).End(xlUp)
        Worksheets("Base de données").Rows(i).EntireRow.Delete
    End If
Next

End Sub

A ta disposition si tu as besoins d'explications
 

spooty67

Nouveau membre
Bonjour,

Merci beaucoup pour cette réponse.

Les lignes s'effacent bel et bien, cependant le report des lignes ne se fait pas correctement. Je n'ai plus qu'une ligne qui apparaît et qui fait par ailleurs disparaître le titre.

Merci encore pour votre aide et meilleures salutations.



 

drul

Obscur pro du hardware
Staff
Meilleure réponse
correction en gras, dsl ...

Private Sub CommandButton1_Click()

a = Worksheets("Base de données").Cells(Rows.Count, 1).End(xlUp).Row

For i = a To 2 Step -1
If Worksheets("Base de données").Cells(i, 16).Value = "OR" Then
Worksheets("Base de données").Rows(i).Copy Worksheets("Refus").Cells(Rows.Count, 1).End(xlUp).offset(1,0)
Worksheets("Base de données").Rows(i).EntireRow.Delete
End If
Next

End Sub
 

spooty67

Nouveau membre
Bonjour,

Super !!! Merci beaucoup pou votre aide c'est exactement ça.

Je vais abuser en vous demandant si il est possible de créer une même règle que la première avec juste une autre condition (OA au lieu de OR) sur un nouvel onglet mais avec le même bouton ?

Quoiqu'il en soit, encore fois un très grand merci pour votre aide et votre rapidité !

Meilleures salutations.
 

drul

Obscur pro du hardware
Staff
Sur la même cellule ?
Mais c'est bien sûr possible
Code:
If a = "OR" Then
    'ce qu'il faut faire avec si la cellule vaut "OR"
ElseIf a = "OT" Then
    'ce qu'il faut faire avec si la cellule vaut "OT"
End If

Edit: petite faute de frappe, j'avais oublier les "" pour OT
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 053
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut