Microsoft 365 VBA copier des lignes dans une autre feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Testigo

XLDnaute Nouveau
Bonjour,

Je souhaite utiliser VBA pour pouvoir copier une ligne d’une feuille sur une autre lorsque les colonnes A, B et C de celle-ci sont remplies. Dans l’idéal, il faudrait que cette ligne soit supprimée de la première feuille, que les autres lignes remontent et que les lignes se copient à la suite sur la 2ème feuille. Les lignes qui m’intéressent commencent à la ligne n°7


Pour résumer :

-SI A, B et C non vides (à partir de la ligne 7) alors on copie colle la ligne sur la 2ème feuille

-on supprime la ligne de la 1ère feuille

-on fait remonter les autres lignes

-Les lignes se copient les une à la suite des autres sur la 2ème feuille.

Ci joint la feuille en question!

Merci par avance pour votre aide!
 

Pièces jointes

Bonsoir le fil, Testigo

Testigo
Pré-requis: par commodité d'usage, j'ai dé fusionné les cellules.
Code à mettre dans le code de la feuille : à valider
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t
If Target.Row <= 6 Then Exit Sub
If Target.Column = 3 Then
If Application.CountA(Cells(Target.Row, 1).Resize(, 3)) = 3 Then
t = Cells(Target.Row, 1).Resize(, 14).Value
Target.EntireRow.Delete
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(UBound(t, 1), UBound(t, 2)) = t
End If
End If
End Sub
PS: test OK sur ton fichier exemple
 
Bonsoir Staple1600,

Merci pour ta réponse rapide!

Je dois t'avouer que je n'ai absolument pas compris ton programme...
Et comment est-ce qu'on le met dans le code de la feuille exactement? J'ai essayé mais apparemment je n'ai pas la bonne méthode, je n'arrive pas à le faire fonctionner. (Je viens de découvrir VBA, je n'y connais vraiment pas grand chose...)
 
Re

1) Tu dois dé fusionner les cellules sur les deux feuilles
2) Clic-droit sur l'onglet [à valider] => Visualiser le code
3) Dans le grand rectangle blanc qui apparaît, tu copies/colles mon code VBA
4) ALT+F11 (pour revenir sur la feuille)
5) Sur la feuille [à valider] , tu saisis une valeur en A7 puis en B7 et enfin C7 puis ENTER
Va voir alors sur la feuille [validé], la copie aura été effectuée.
 
Bonsoir Testigo, bienvenue sur XLD, salut JM,

Autre solution, placez dans le code de la 1ère feuille (clic droit sur l'onglet et visualiser le code) :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 7 Then Exit Sub
Dim F As Worksheet, c As Range
Set F = Feuil2 'CodeName de la feuille de destination
Cancel = True
With Target.EntireRow
    Set c = .Rows(1).Resize(, 3).Find("", .Cells(1, 3), xlValues)
    If Not c Is Nothing Then MsgBox "Renseignez la cellule " & c.Address(0, 0): Exit Sub
    .Copy F.[A:A].Find("", F.[A6])
    .Delete
End With
End Sub
La macro s'exécute automatiquement quand on double-clique sur une ligne.

Les cellules fusionnées ne posent aucun problème.

A+
 
Dernière édition:
Bonjour,

Je souhaite utiliser VBA pour pouvoir copier une ligne d’une feuille sur une autre lorsque les colonnes A, B et C de celle-ci sont remplies. Dans l’idéal, il faudrait que cette ligne soit supprimée de la première feuille, que les autres lignes remontent et que les lignes se copient à la suite sur la 2ème feuille. Les lignes qui m’intéressent commencent à la ligne n°7


Pour résumer :

-SI A, B et C non vides (à partir de la ligne 7) alors on copie colle la ligne sur la 2ème feuille

-on supprime la ligne de la 1ère feuille

-on fait remonter les autres lignes

-Les lignes se copient les une à la suite des autres sur la 2ème feuille.

Ci joint la feuille en question!

Merci par avance pour votre aide!
Bonjour à tous
Autre proposition par un bouton qui traite toute la feuille
 

Pièces jointes

Merci à tous les deux pour vos réponses! J'ai testé ça fonctionne parfaitement!
Dernière petite question, sous quel format faut-il sauvegarder le fichier pour garder la macro enregistrée? (il me semble que c'est classeur excel prenant en charge les macros)

Encore merci et bonne journée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
175
Retour