Mettre les lignes à la suite
romain__54
Messages postés
32
Statut
Membre
-
romain__54 Messages postés 32 Statut Membre -
romain__54 Messages postés 32 Statut Membre -
Bonjour,
Je présente mon fichier vite fait.
Dans une première feuille j'ai une liste en ligne de tous les véhicules avec km, entretien, imatriculation ...... toutes les infos que j'ai besoin.
Dans cette même feuille la premiere colonne et vide et dans je met un "X", toute la ligne est copié et mise en forme dans la feuille 2.
Mon soucis c'est que je voudrais en selectionner plusieurs et qui'il se mettre a la suite sur ma feuille 2, pour le moment chaque ligne se copie bien mais celle que je ne selectionne pas ce me fais une ligne blanche.!!!!
Merci d'avance pour votre aide
Je présente mon fichier vite fait.
Dans une première feuille j'ai une liste en ligne de tous les véhicules avec km, entretien, imatriculation ...... toutes les infos que j'ai besoin.
Dans cette même feuille la premiere colonne et vide et dans je met un "X", toute la ligne est copié et mise en forme dans la feuille 2.
Mon soucis c'est que je voudrais en selectionner plusieurs et qui'il se mettre a la suite sur ma feuille 2, pour le moment chaque ligne se copie bien mais celle que je ne selectionne pas ce me fais une ligne blanche.!!!!
Merci d'avance pour votre aide
8 réponses
Salut,
Pas très compliqué mais serait il possible d'avoir un bout de ton fichier sans note confidentielles pour adapter le code à sa structure que tu peux joindre avec ce lien
https://www.cjoint.com/
clic sur le lien/parcourir pour sélectionner le fichier/Créer le lien et copie le lien généré dans un post.
je serais de retour que dans la soirée
Pas très compliqué mais serait il possible d'avoir un bout de ton fichier sans note confidentielles pour adapter le code à sa structure que tu peux joindre avec ce lien
https://www.cjoint.com/
clic sur le lien/parcourir pour sélectionner le fichier/Créer le lien et copie le lien généré dans un post.
je serais de retour que dans la soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Je suis rentré plus tard que prévue hier soir, je te regarde un code VBA, les lignes sont simplement copiées ou coupées
Je suis rentré plus tard que prévue hier soir, je te regarde un code VBA, les lignes sont simplement copiées ou coupées
Non je ne veux rien couper
En faite ça me permet de survoler toutes les semaines le parc en mettant 1 sur les véhicules qui attirent mon attention et en sortir une liste pour les lettres en rep. Ou revision.
En faite ça me permet de survoler toutes les semaines le parc en mettant 1 sur les véhicules qui attirent mon attention et en sortir une liste pour les lettres en rep. Ou revision.
Re,
alors voila un code à coller dans un module et à associer à un bouton, sur la feuille 1, colonne K crée une colonne contrôle afin d'éviter de copier les lignes en doubles
Sub Macro22()
Dim Lig, NbrLig, NumLig, LigFin As Long
If WorksheetFunction.CountIf(Range(Range("A2"), Range("A65000").End(xlUp)), "=X") = WorksheetFunction.CountIf(Range(Range("K2"), Range("K65000").End(xlUp)), "=transféré") Then
MsgBox "pas de donnée à transférer"
Else
Sheets("Feuille2").Activate
LigFin = Range("A65536").End(xlUp).Row + 1
NumLig = 1
With Sheets("Feuille1")
NbrLig = .Cells(65536, "A").End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, "A").Value = "X" And Cells(Lig, "K").Value <> "transféré" Then
.Cells(Lig, "A").EntireRow.Copy 'Cut
NumLig = NumLig + 1
Cells(LigFin, 1).Select
LigFin = LigFin + 1
ActiveSheet.Paste
End If
If .Cells(Lig, "A").Value = "X" Then
.Cells(Lig, "K") = "transféré" 'Cut
MsgBox ("Données copiées")
End If
Next
End With
Cells(ActiveCell.Row, 1).Select
Application.CutCopyMode = False
End If
End Sub
alors voila un code à coller dans un module et à associer à un bouton, sur la feuille 1, colonne K crée une colonne contrôle afin d'éviter de copier les lignes en doubles
Sub Macro22()
Dim Lig, NbrLig, NumLig, LigFin As Long
If WorksheetFunction.CountIf(Range(Range("A2"), Range("A65000").End(xlUp)), "=X") = WorksheetFunction.CountIf(Range(Range("K2"), Range("K65000").End(xlUp)), "=transféré") Then
MsgBox "pas de donnée à transférer"
Else
Sheets("Feuille2").Activate
LigFin = Range("A65536").End(xlUp).Row + 1
NumLig = 1
With Sheets("Feuille1")
NbrLig = .Cells(65536, "A").End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, "A").Value = "X" And Cells(Lig, "K").Value <> "transféré" Then
.Cells(Lig, "A").EntireRow.Copy 'Cut
NumLig = NumLig + 1
Cells(LigFin, 1).Select
LigFin = LigFin + 1
ActiveSheet.Paste
End If
If .Cells(Lig, "A").Value = "X" Then
.Cells(Lig, "K") = "transféré" 'Cut
MsgBox ("Données copiées")
End If
Next
End With
Cells(ActiveCell.Row, 1).Select
Application.CutCopyMode = False
End If
End Sub
Bonjour,
Alors nickel, j'ai testé ca avec un peu de retard c'est sur mais bon !!!!!!!!!!!!!
Si je peux etre un poil exigent est il possible d'optimiser deux points ???
1: en faite je voudrais qu'il commence a copier à la ligne 16 !!!!! Pourquoi ? ben parce que j'ai une en tete qui est a mettre .
2: et ma deuxieme serait de ne pas copier la ligne complete mais plutot les cellules par exemple C , E et G de la ligne et de pouvoir les mettre dans les cellules B, D et F de la ligne en feuille 2 !!!!!
Merci d'avance mais c'est pour avoir un fichier tip top
Alors nickel, j'ai testé ca avec un peu de retard c'est sur mais bon !!!!!!!!!!!!!
Si je peux etre un poil exigent est il possible d'optimiser deux points ???
1: en faite je voudrais qu'il commence a copier à la ligne 16 !!!!! Pourquoi ? ben parce que j'ai une en tete qui est a mettre .
2: et ma deuxieme serait de ne pas copier la ligne complete mais plutot les cellules par exemple C , E et G de la ligne et de pouvoir les mettre dans les cellules B, D et F de la ligne en feuille 2 !!!!!
Merci d'avance mais c'est pour avoir un fichier tip top