Transfer d'une ligne complete d'un onglet vers un autre

Night59

XLDnaute Nouveau
Bonjour à tous,

J'aurais une question pour les excelistes qui connaissent les macros...
Pour ma part, je suis débutant mais j'ai découvert pas mal de choses avec Excel qui est très pratique il faut bien l'avouer.

Bref je vous expose ma problématique, j'ai créé un planning jusque là rien d'extraordinaire.
J'ai mis également des menus déroulants et plusieurs onglets pour l'avancement.
Là où je bloque c'est pour déplacer (et pas copier) une ligne complète d'un onglet vers un autre automatiquement en cochant dans une case de cette même ligne mais en prenant en compte certaines cases.

Et petite info supplémentaire, ce planning sera partagé (j'espère que çà ne posera pas de problème particulier) pour être utiliser par plusieurs personnes.

Merci d'avance pour votre aide...
 

Pièces jointes

  • PLANNING 2015.xlsx
    59.9 KB · Affichages: 29
  • PLANNING 2015.xlsx
    59.9 KB · Affichages: 39
  • PLANNING 2015.xlsx
    59.9 KB · Affichages: 45

Night59

XLDnaute Nouveau
Re : Transfer d'une ligne complete d'un onglet vers un autre

Oui c'est vrai que j'aurais du expliqué plus en détail.
Je voulais déjà avoir plus d'infos.
Sinon la ou plutôt les cases sont celles où ils est marqué "OK".

En fait dans le premier onglet (commande), quand on met une croix dans la colonne G la ligne passe automatiquement dans l'onglet suivant (pao - prépresse).
Mais attention, il faut que çà passe dans cet onglet sauf si dans la colonne H il est indiqué "retirage sans correction", car dans ce cas il passe dans ça passe par exemple dans l'onglet numérique, si dans la colonne Q (Production) il est indiqué "Lille".
Pour la suite j'essaierai de me débrouiller et au pire je redemanderai conseil.

Merci d'avance de votre aide...
 

Night59

XLDnaute Nouveau
Re : Transfer d'une ligne complete d'un onglet vers un autre

Je joint un exemple concret de ma demande.
 

Pièces jointes

  • PLANNING 2015.xlsx
    60 KB · Affichages: 35
  • PLANNING 2015.xlsx
    60 KB · Affichages: 40
  • PLANNING 2015.xlsx
    60 KB · Affichages: 37

youky(BJ)

XLDnaute Barbatruc
Re : Transfer d'une ligne complete d'un onglet vers un autre

Salut,
1 click droit de souris sur l'onglet COMMANDE et visualiser le code
copie cela
Comme j'ai pas tout pigé ta demande il faut modifier, cela est une bonne approche
Bruno
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'si plusieurs selection on quitte
lig = Target.Row 'la ligne
If Target.Column <> 7 Or lig < 8 Then Exit Sub
If Target <> "x" Then Exit Sub 'si pas de x on quitte
If Cells(Target.Row, 8) = "RETIRAGE SANS CORRECTIONS" Then
'on écrit sur NUMERIQUE
bas = Feuil3.[C65000].End(3).Row + 1 'ligne à écrire
Feuil3.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value
Else
'on écrit sur PAO....
bas = Feuil2.[C65000].End(3).Row + 1
Feuil2.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value 'écriture
End If
Feuil1.Rows(lig).Delete 'destruction de la ligne
End Sub

EDIT: j'ai oublié de dire qu'il faut mettre un "x" en colonne du OK
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Transfer d'une ligne complete d'un onglet vers un autre

Voici le fichier avec la macro.
Mets x en minuscule
Bruno
 

Pièces jointes

  • Planning15.xlsm
    37.7 KB · Affichages: 41
  • Planning15.xlsm
    37.7 KB · Affichages: 44
  • Planning15.xlsm
    37.7 KB · Affichages: 34

Night59

XLDnaute Nouveau
Re : Transfer d'une ligne complete d'un onglet vers un autre

Bonjour,

Merci déjà pour le code, c'est bien ce que je cherche à faire.
Par contre pour la suite, çà ne fonctionne pas quand je poursuit les opérations...
Voici le code que j'ai fait en fonction du votre mais je suppose qu'il manque une infos !!!

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 2 Then Exit Sub 'si plusieurs selection on quitte
lig = Target.Row 'la ligne
If Target.Column <> 14 Or lig < 15 Then Exit Sub
If Target <> "x" Then Exit Sub 'si pas de x on quitte
If Cells(Target.Row, 17) = "MAUROIS" Then
'on écrit sur NUMERIQUE
bas = Feuil3.[C65000].End(3).Row + 1 'ligne à écrire
Feuil3.Range("B" & bas & ":AA" & bas).Value = Feuil2.Range("B" & lig & ":AA" & lig).Value
Else
'on écrit sur PAO....
bas = Feuil4.[C65000].End(3).Row + 1
Feuil4.Range("B" & bas & ":AA" & bas).Value = Feuil2.Range("B" & lig & ":AA" & lig).Value 'écriture
End If
Feuil2.Rows(lig).Delete 'destruction de la ligne
End Sub
 

andrea73

XLDnaute Nouveau
Re : Transfer d'une ligne complete d'un onglet vers un autre

Bonjour Night59 et à tous...

j'ai élaboré un début de solution à ton problème... (voir fichier joint) avec de la programmation simple

j'ai mis quelques "commentaires excel" sur certaines cellules pour aider à la compréhension...

nota il faut ouvrir l'onglet INFOS pour avoir toutes les infos de mes cogitations...
 

Pièces jointes

  • SuiviTravauxImprimerie.xlsx
    35.8 KB · Affichages: 23

youky(BJ)

XLDnaute Barbatruc
Re : Transfer d'une ligne complete d'un onglet vers un autre

Bonjour à tous,
Bienvenu andrea73, je regarderais comment tu fais . . .
Night, il faut copier le code complet dans tous les onglets ou doit se produire l'opération.
Pour cela tu click avec le bouton droit de la souris sur l'onglet désiré et selectionne "Visualiser le code"
Copie la macro entièrement et directement dans la feuille blanche
Ceci à répéter dans tous les onglets.
Si c'est dans tout les onglets on peux créer un module, et copier la 2ème macro
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'si plusieurs selection on quitte
lig = Target.Row 'la ligne
If Target.Column <> 7 Or lig < 8 Then Exit Sub
If Target <> "x" Then Exit Sub 'si pas de x on quitte
If Cells(Target.Row, 8) = "RETIRAGE SANS CORRECTIONS" Then
'on écrit sur NUMERIQUE qui est Feuil3
bas = Feuil3.[C65000].End(3).Row + 1 'ligne à écrire
Feuil3.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value
Else
'on écrit sur PAO....Feuil2
bas = Feuil2.[C65000].End(3).Row + 1
Feuil2.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value 'écriture
End If
Rows(lig).Delete 'destruction de la ligne sur la feuille active
End Sub

si macro en module et idem pour tous les onglets
en
Private Sub Worksheet_Change(ByVal Target As Range)
mymacro
End sub
à faire sur tous les onglets voulu
A toi de voir ce qui conviens le mieux.
Code:
Sub mymacro()
If Selection.Count > 1 Then Exit Sub 'si plusieurs selection on quitte
lig = Selection.Row 'la ligne
If Selection.Column <> 7 Or lig < 8 Then Exit Sub
If Selection <> "x" Then Exit Sub 'si pas de x on quitte
If Cells(Selection.Row, 8) = "RETIRAGE SANS CORRECTIONS" Then
'on écrit sur NUMERIQUE qui est Feuil3
bas = Feuil3.[C65000].End(3).Row + 1 'ligne à écrire
Feuil3.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value
Else
'on écrit sur PAO....Feuil2
bas = Feuil2.[C65000].End(3).Row + 1
Feuil2.Range("B" & bas & ":AA" & bas).Value = Feuil1.Range("B" & lig & ":AA" & lig).Value 'écriture
End If
Rows(lig).Delete 'destruction de la ligne sur la feuille active
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Transfer d'une ligne complete d'un onglet vers un autre

Bon je viens de faire autrement pour cocher dans les différentes colonnes
Voici un nouveau fichier
la macro s'exécute dans tous les onglet sauf Numérique et pao
J'ai relu et pas encore tout pigé bien la demande et si,et si et si.....
Enfin cela fera avancer pas mal
Bruno
 

Pièces jointes

  • Planning15.xlsm
    42.9 KB · Affichages: 31
  • Planning15.xlsm
    42.9 KB · Affichages: 32
  • Planning15.xlsm
    42.9 KB · Affichages: 37

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan