Copier Coller des lignes entre les feuilles (Excel 2010)
Batou021
-
Batou021 -
Batou021 -
Bonjour à tous et à toutes,
J'ai cherché pendant pas mal de temps comment réaliser cette macro et je n'ai pas résolu le problème malgré les nombreux forums dessus.
Les dossiers partagés sur CCM ne sont plus consultables et je n'ai pas les compétences suffisantes en excel pour le faire seul. (Et je n'ai surtout pas le temps de les acquérir )
Je vous explique mon problème, j'ai une liste de client sous format excel. Chaque client représente une ligne.
Les colonnes représente des caractéristiques du client (Nom, Prénom, société...)
La colonne Q correspond à la question "Travaillez vous avec le Service n°1"
La colonne R correspond à la question "Travaillez vous avec le Service n°2"
...
Les possibilités de réponses à ces deux questions sont "Checked" et "Unchecked"
J'aimerai savoir comment copier la ligne du client lorsque celui-ci répond "Checked" à la colonne Q et le coller dans la feuille "Service n°1"
De plus il faudrait qu'aucune ligne ne soit vide lors des copies sur les feuille "Service 1", "Service 2"...
Merci d'avance pour votre aide qui me sera précieuse.
J'ai cherché pendant pas mal de temps comment réaliser cette macro et je n'ai pas résolu le problème malgré les nombreux forums dessus.
Les dossiers partagés sur CCM ne sont plus consultables et je n'ai pas les compétences suffisantes en excel pour le faire seul. (Et je n'ai surtout pas le temps de les acquérir )
Je vous explique mon problème, j'ai une liste de client sous format excel. Chaque client représente une ligne.
Les colonnes représente des caractéristiques du client (Nom, Prénom, société...)
La colonne Q correspond à la question "Travaillez vous avec le Service n°1"
La colonne R correspond à la question "Travaillez vous avec le Service n°2"
...
Les possibilités de réponses à ces deux questions sont "Checked" et "Unchecked"
J'aimerai savoir comment copier la ligne du client lorsque celui-ci répond "Checked" à la colonne Q et le coller dans la feuille "Service n°1"
De plus il faudrait qu'aucune ligne ne soit vide lors des copies sur les feuille "Service 1", "Service 2"...
Merci d'avance pour votre aide qui me sera précieuse.
A voir également:
- Copier Coller des lignes entre les feuilles (Excel 2010)
- Historique copier coller - Guide
- Liste déroulante excel - Guide
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Historique copier coller windows - Accueil - Informatique
1 réponse
Bonjour ,
Ravi de voir un post aussi clair que le tien. Ça donne envie !
Voilà un premier départ pour le service n°1 (colonne Q) , il faudra en faire autant pour la colonne R , si ca te convient.
Cordialement,
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que votre problème n'en est plus un. Fahora
Ravi de voir un post aussi clair que le tien. Ça donne envie !
Sub CreerFeuilles()
Dim Cel As Range
Application.ScreenUpdating = False
For Each Cel In .Range("Q2:Q" & .Range("Q" & Rows.Count).End(xlUp).Row)
If Cel.Value = "Checked" Then
Cel.EntireRow.Copy Sheets("Service n°1").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next Cel
Application.ScreenUpdating = True
MsgBox "Traitement terminé"
End Sub
Voilà un premier départ pour le service n°1 (colonne Q) , il faudra en faire autant pour la colonne R , si ca te convient.
Cordialement,
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que votre problème n'en est plus un. Fahora
J'ai encore un souci de novice je ne peux utiliser la référence de la macro, j'arrive à la créer mais il ne l'a trouve pas.
De plus si je peux me permettre d'user votre temps pourriez vous m'expliquer les fonctions des différentes lignes dans votre programme.
Tu peux ensuite créer un bouton pour inserer la macro dans ton fichier. Et en cliquant sur ce bouton, elle se deroulera. Ou alors , tu peux simplement utiliser dans le ruban développeur , l'objet "Macros" , sélectionner et éxecuter la macro.
Ligne par ligne , c'est assez délicat , mais ce n'est pas bien compliqué.
Sub CreerFeuilles() Dim Cel As Range Application.ScreenUpdating = False 'Enleve les vérifications d'excel pour le bon déroulement de la macro For Each Cel In .Range("Q2:Q" & .Range("Q" & Rows.Count).End(xlUp).Row) 'Pour chaque cellule dans la colonne Q , à partir de la cellule Q2 If Cel.Value = "Checked" Then 'Si la valeur de la cellule est "Checked" , alors Cel.EntireRow.Copy Sheets("Service n°1").Range("A" & Rows.Count).End(xlUp).Offset(1) 'Je copie toute la ligne de la cellule et je la met à la première ligne où il n'y a rien dans l onglet "Service n°1" End If 'fin de la condition Next Cel 'Cellule suivante Application.ScreenUpdating = True 'Remet les vérifications MsgBox "Traitement terminé" End SubJ'ai un dernier problème si tu peux encore m'aider, je n'arrive pas à copier la ligne entière mais seulement de la première cellule à celle qui me sert pour le tri.
Merci d'avance
Le bout de programme correspondant :
Nb_Lignes_Télémaintenance_Prédictive = Sheets("PageTélémaintenance_Prédictive").Cells(Rows.Count, 1).End(xlUp).Row + 1
Set colonne_selection_O = .Range("O2:O" & .Range("O" & Rows.Count).End(xlUp).Row)
For Each cellule In colonne_selection_O
Select Case cellule.Text
Case "Checked"
.Range(cellule, .Cells(cellule.Row, 1)).Copy Destination:=Worksheets("PageTélémaintenance_Prédictive").Cells(Nb_Lignes_Télémaintenance_Prédictive, 1)
Nb_Lignes_Télémaintenance_Prédictive = Nb_Lignes_Télémaintenance_Prédictive + 1
'[etc..]
Case Else ' Autres valeurs.
'Non géré
End Select
Next
End With
Application.ScreenUpdating = True
En bidouillant et en apprenant les bases du programme j'ai pondu la macro précédente. Mais comme je vous l'ai dit je n'ai toujours pas réussi...