Voilà un bout de code en VB qui fait du copier/coller de données d'un
onglet à un autre, mais celui ci est lent. Pouvez-vous, s'il vous plait,
me dire ce qui peux être amélioré pour le rendre plus rapide.
Je pense que cela doit venir des formules de copier/coller :
'copie le n° d'affaire
Sheets("Previsionnel").Select:Sheets("Previsionnel").Cells(ligne_source,"A").Copy
Sheets("Compilation").Select:Sheets("Compilation").Cells(ligne_cible,"A").Select:ActiveSheet.Paste
Merci d'avance
Sub MAJ_Compilation()
'Déclaration de variable
Dim ligne_source As Integer
Dim colonne_source As Integer
Dim ligne_cible As Integer
Dim semaine As String
'Initialisation de la ligne_source
ligne_source = 4
'Initialisation de colonne_source
colonne_source = 5
semaine = InputBox("Entre le n° de semaine en respectant les majuscules,
Exemple : W03 pour W03")
Sheets("Previsionnel").Select
While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine
colonne_source = colonne_source + 1
Wend
'Initialisation du compteur ligne_cible en fin du tableau
ligne_cible = 1
Sheets("Compilation").Activate: Sheets("Compilation").Select
While Sheets("Compilation").Cells(ligne_cible, "A") <> ""
ligne_cible = ligne_cible + 1
Wend
'Tant qu'il y a des années
Sheets("Previsionnel").Activate
While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <> de vide,
While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide,
If Sheets("Previsionnel").Cells(ligne_source, colonne_source)
<> "" Then
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FFO
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Salut à toi
Je mettrais les différentes procédures de recopie ainsi :
'Copie le n° d'affaire
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
SALUT
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi :
'Copie le n° d'affaire
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour,
Mais raccourci ne fonctionne pas :
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non
gérer par cet objet"
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
Daniel.C
Bonjour. La commande de FFO doit tenir sur une seule ligne. Sinon, mettre : Sheets("Previsionnel").Cells(ligne_source, "A").Copy _ Sheets("Compilation").Cells(ligne_cible, "A") sur deux lignes. Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
Bonjour.
La commande de FFO doit tenir sur une seule ligne.
Sinon, mettre :
Sheets("Previsionnel").Cells(ligne_source, "A").Copy _
Sheets("Compilation").Cells(ligne_cible, "A")
sur deux lignes.
Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi :
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour,
Mais raccourci ne fonctionne pas :
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par
cet objet"
Bonjour. La commande de FFO doit tenir sur une seule ligne. Sinon, mettre : Sheets("Previsionnel").Cells(ligne_source, "A").Copy _ Sheets("Compilation").Cells(ligne_cible, "A") sur deux lignes. Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
FdeCourt
Salut,
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable Dim ligne_source As Integer Dim colonne_source As Integer Dim ligne_cible As Integer Dim semaine As String StatutCalcul = Application.Calculation Application.Calculation = xlCalculationManual 'Initialisation de la ligne_source ligne_source = 4
'Initialisation de colonne_source colonne_source = 5 semaine = InputBox("Entre le n° de semaine en respectant les majuscules, Exemple : W03 pour W03") While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine colonne_source = colonne_source + 1 Wend
'Tant qu'il y a des années While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <> de vide, While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide, If Sheets("Previsionnel").Cells(ligne_source, colonne_source) <> "" Then
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot Sheets("Previsionnel").Cells(ligne_source, "B").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code Sheets("Previsionnel").Cells(ligne_source, "C").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche Sheets("Previsionnel").Cells(ligne_source, "D").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année Sheets("Previsionnel").Cells(ligne_source, "E").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois Sheets("Previsionnel").Cells(ligne_source, "F").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine Sheets("Previsionnel").Cells(ligne_source, "G").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure Sheets("Previsionnel").Cells(ligne_source, "H").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure Sheets("Compilation").Cells(ligne_cible, "R") = "reprevisionnel"
'Mise au format standard de ligne With Sheets("Compilation").Range(Cells(ligne_cible, 1), Cells(ligne_cible, "R")) .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone .Font.Bold = False End With
ligne_cible = ligne_cible + 1 'passer à la ligne 'suivante dans la feuille compilation
Wend Application.Calculation = StatutCalcul End Sub
Cordialement,
F.
Salut,
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable
Dim ligne_source As Integer
Dim colonne_source As Integer
Dim ligne_cible As Integer
Dim semaine As String
StatutCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
'Initialisation de la ligne_source
ligne_source = 4
'Initialisation de colonne_source
colonne_source = 5
semaine = InputBox("Entre le n° de semaine en respectant les
majuscules, Exemple : W03 pour W03")
While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine
colonne_source = colonne_source + 1
Wend
'Tant qu'il y a des années
While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <>
de vide,
While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide,
If Sheets("Previsionnel").Cells(ligne_source,
colonne_source) <> "" Then
'Copie le n° d'affaire
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot
Sheets("Previsionnel").Cells(ligne_source, "B").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code
Sheets("Previsionnel").Cells(ligne_source, "C").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche
Sheets("Previsionnel").Cells(ligne_source, "D").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année
Sheets("Previsionnel").Cells(ligne_source, "E").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois
Sheets("Previsionnel").Cells(ligne_source, "F").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine
Sheets("Previsionnel").Cells(ligne_source, "G").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure
Sheets("Previsionnel").Cells(ligne_source, "H").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure
Sheets("Compilation").Cells(ligne_cible, "R") =
"reprevisionnel"
'Mise au format standard de ligne
With Sheets("Compilation").Range(Cells(ligne_cible,
1), Cells(ligne_cible, "R"))
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Font.Bold = False
End With
ligne_cible = ligne_cible + 1 'passer à la ligne
'suivante dans la feuille compilation
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable Dim ligne_source As Integer Dim colonne_source As Integer Dim ligne_cible As Integer Dim semaine As String StatutCalcul = Application.Calculation Application.Calculation = xlCalculationManual 'Initialisation de la ligne_source ligne_source = 4
'Initialisation de colonne_source colonne_source = 5 semaine = InputBox("Entre le n° de semaine en respectant les majuscules, Exemple : W03 pour W03") While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine colonne_source = colonne_source + 1 Wend
'Tant qu'il y a des années While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <> de vide, While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide, If Sheets("Previsionnel").Cells(ligne_source, colonne_source) <> "" Then
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot Sheets("Previsionnel").Cells(ligne_source, "B").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code Sheets("Previsionnel").Cells(ligne_source, "C").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche Sheets("Previsionnel").Cells(ligne_source, "D").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année Sheets("Previsionnel").Cells(ligne_source, "E").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois Sheets("Previsionnel").Cells(ligne_source, "F").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine Sheets("Previsionnel").Cells(ligne_source, "G").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure Sheets("Previsionnel").Cells(ligne_source, "H").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure Sheets("Compilation").Cells(ligne_cible, "R") = "reprevisionnel"
'Mise au format standard de ligne With Sheets("Compilation").Range(Cells(ligne_cible, 1), Cells(ligne_cible, "R")) .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone .Font.Bold = False End With
ligne_cible = ligne_cible + 1 'passer à la ligne 'suivante dans la feuille compilation
Wend Application.Calculation = StatutCalcul End Sub
Cordialement,
F.
SALUT
Daniel.C a écrit :
Bonjour. La commande de FFO doit tenir sur une seule ligne. Sinon, mettre : Sheets("Previsionnel").Cells(ligne_source, "A").Copy _ Sheets("Compilation").Cells(ligne_cible, "A") sur deux lignes. Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
Merci c'est déjà plus rapide.
Daniel.C a écrit :
Bonjour.
La commande de FFO doit tenir sur une seule ligne.
Sinon, mettre :
Sheets("Previsionnel").Cells(ligne_source, "A").Copy _
Sheets("Compilation").Cells(ligne_cible, "A")
sur deux lignes.
Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi :
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source,
"A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour,
Mais raccourci ne fonctionne pas :
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non
gérer par cet objet"
Bonjour. La commande de FFO doit tenir sur une seule ligne. Sinon, mettre : Sheets("Previsionnel").Cells(ligne_source, "A").Copy _ Sheets("Compilation").Cells(ligne_cible, "A") sur deux lignes. Daniel
FFO a écrit :
Salut à toi
Je mettrais les différentes procédures de recopie ainsi : 'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A")
Reproduits à l'identique pour toutes les copies et dis moi !!!!
Merci pour ce retour, Mais raccourci ne fonctionne pas : Sheets("Previsionnel").Cells(ligne_source, "A").Copy Sheets("Compilation").Cells(ligne_cible, "A").Paste
Message d'erreur " Erreur d'exécution 438, propriété ou méthode non gérer par cet objet"
As tu une autre idée ?
Merci c'est déjà plus rapide.
FFO
Rebonjour à toi
Attention tu n'as pas scrupuleusement respecté ma proposition Il n'y a pas l'instruction "Paste" en fin Tu dois mettre sur une seule ligne ceci :
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable Dim ligne_source As Integer Dim colonne_source As Integer Dim ligne_cible As Integer Dim semaine As String StatutCalcul = Application.Calculation Application.Calculation = xlCalculationManual 'Initialisation de la ligne_source ligne_source = 4
'Initialisation de colonne_source colonne_source = 5 semaine = InputBox("Entre le n° de semaine en respectant les majuscules, Exemple : W03 pour W03") While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine colonne_source = colonne_source + 1 Wend
'Tant qu'il y a des années While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <> de vide, While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide, If Sheets("Previsionnel").Cells(ligne_source, colonne_source) <> "" Then
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot Sheets("Previsionnel").Cells(ligne_source, "B").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code Sheets("Previsionnel").Cells(ligne_source, "C").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche Sheets("Previsionnel").Cells(ligne_source, "D").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année Sheets("Previsionnel").Cells(ligne_source, "E").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois Sheets("Previsionnel").Cells(ligne_source, "F").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine Sheets("Previsionnel").Cells(ligne_source, "G").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure Sheets("Previsionnel").Cells(ligne_source, "H").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure Sheets("Compilation").Cells(ligne_cible, "R") > "reprevisionnel"
'Mise au format standard de ligne With Sheets("Compilation").Range(Cells(ligne_cible, 1), Cells(ligne_cible, "R")) .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone .Font.Bold = False End With
ligne_cible = ligne_cible + 1 'passer à la ligne 'suivante dans la feuille compilation
Wend Application.Calculation = StatutCalcul End Sub
Cordialement,
F.
Merci, c'est vraiment plus rapide. Merci :-)
FdeCourt a écrit :
Salut,
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable
Dim ligne_source As Integer
Dim colonne_source As Integer
Dim ligne_cible As Integer
Dim semaine As String
StatutCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
'Initialisation de la ligne_source
ligne_source = 4
'Initialisation de colonne_source
colonne_source = 5
semaine = InputBox("Entre le n° de semaine en respectant les
majuscules, Exemple : W03 pour W03")
While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine
colonne_source = colonne_source + 1
Wend
'Tant qu'il y a des années
While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <>
de vide,
While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide,
If Sheets("Previsionnel").Cells(ligne_source,
colonne_source) <> "" Then
'Copie le n° d'affaire
Sheets("Previsionnel").Cells(ligne_source, "A").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot
Sheets("Previsionnel").Cells(ligne_source, "B").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code
Sheets("Previsionnel").Cells(ligne_source, "C").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche
Sheets("Previsionnel").Cells(ligne_source, "D").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année
Sheets("Previsionnel").Cells(ligne_source, "E").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois
Sheets("Previsionnel").Cells(ligne_source, "F").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine
Sheets("Previsionnel").Cells(ligne_source, "G").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure
Sheets("Previsionnel").Cells(ligne_source, "H").Copy
Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure
Sheets("Compilation").Cells(ligne_cible, "R") > "reprevisionnel"
'Mise au format standard de ligne
With Sheets("Compilation").Range(Cells(ligne_cible,
1), Cells(ligne_cible, "R"))
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Font.Bold = False
End With
ligne_cible = ligne_cible + 1 'passer à la ligne
'suivante dans la feuille compilation
Essayes avec cette macro (sur un classeur de test)
Sub MAJ_Compilation()
'Déclaration de variable Dim ligne_source As Integer Dim colonne_source As Integer Dim ligne_cible As Integer Dim semaine As String StatutCalcul = Application.Calculation Application.Calculation = xlCalculationManual 'Initialisation de la ligne_source ligne_source = 4
'Initialisation de colonne_source colonne_source = 5 semaine = InputBox("Entre le n° de semaine en respectant les majuscules, Exemple : W03 pour W03") While Sheets("Previsionnel").Cells(3, colonne_source) <> semaine colonne_source = colonne_source + 1 Wend
'Tant qu'il y a des années While Sheets("Previsionnel").Cells(1, colonne_source) <> ""
'Tant que dans le previsionnel, la ligne n° d'affaire est <> de vide, While Sheets("Previsionnel").Cells(ligne_source, "A") <> ""
'Si heure_source <> vide, If Sheets("Previsionnel").Cells(ligne_source, colonne_source) <> "" Then
'Copie le n° d'affaire Sheets("Previsionnel").Cells(ligne_source, "A").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "A")
'Copie le lot Sheets("Previsionnel").Cells(ligne_source, "B").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "B")
'Copie la code Sheets("Previsionnel").Cells(ligne_source, "C").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "C")
'Copie le Tâche Sheets("Previsionnel").Cells(ligne_source, "D").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "D")
'Copie l'année Sheets("Previsionnel").Cells(ligne_source, "E").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "E")
'Copie le mois Sheets("Previsionnel").Cells(ligne_source, "F").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "F")
'Copie la semaine Sheets("Previsionnel").Cells(ligne_source, "G").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "G")
'Copie le nombre d'heure Sheets("Previsionnel").Cells(ligne_source, "H").Copy Destination:=Sheets("Compilation").Cells(ligne_cible, "H")
'Copie le nombre d'heure Sheets("Compilation").Cells(ligne_cible, "R") > "reprevisionnel"
'Mise au format standard de ligne With Sheets("Compilation").Range(Cells(ligne_cible, 1), Cells(ligne_cible, "R")) .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone .Font.Bold = False End With
ligne_cible = ligne_cible + 1 'passer à la ligne 'suivante dans la feuille compilation