L'erreur classique 424 ^^
Résolu/Fermé
Markoko
Messages postés
7
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
18 juillet 2014
-
Modifié par pijaku le 17/07/2014 à 09:20
Markoko Messages postés 7 Date d'inscription mercredi 9 juillet 2014 Statut Membre Dernière intervention 18 juillet 2014 - 18 juil. 2014 à 09:07
Markoko Messages postés 7 Date d'inscription mercredi 9 juillet 2014 Statut Membre Dernière intervention 18 juillet 2014 - 18 juil. 2014 à 09:07
A voir également:
- L'erreur classique 424 ^^
- Erreur 0x80070643 - Accueil - Windows
- Windows 11 affichage classique - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
15 juil. 2014 à 14:41
15 juil. 2014 à 14:41
Bonjour
pourquoi
on a
Set f_report = wb.Worksheets("Forecast")
With Forecast ?????
Set myplage = .Range(.Cell(4, i), .Cell(7, i), .Cell(10, i))
End With
j'aurais plutôt écris ceci
mais il y a beaucoup d'autres choses à revoir....
pourquoi
on a
Set f_report = wb.Worksheets("Forecast")
With Forecast ?????
Set myplage = .Range(.Cell(4, i), .Cell(7, i), .Cell(10, i))
End With
j'aurais plutôt écris ceci
With f_report
'Rank#1
For i = 5 To 7
Minimum = Application.Min(.Cells(i, 4), .Cells(i, 7), .Cells(i, 10))
minimumadress = .Rows(i).Find(Minimum).Address
..... etc
mais il y a beaucoup d'autres choses à revoir....
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 juil. 2014 à 18:43
15 juil. 2014 à 18:43
Re,
«Mais les select j'en ai besoin, ...» : Non pas dans ton cas !!!
Et si tu les supprimes, le code n'en sera que plus simple, plus lisible et plus efficace.
Par exemple tu peux remplacer toutes les lignes suivantes :
Par une seule (sans Select)
«Mais les select j'en ai besoin, ...» : Non pas dans ton cas !!!
Et si tu les supprimes, le code n'en sera que plus simple, plus lisible et plus efficace.
Par exemple tu peux remplacer toutes les lignes suivantes :
Range(MinimumAddress).Cut Sheets("Template").Select Range("D" & i).Select ActiveSheet.Paste
Par une seule (sans Select)
f_report.Range(MinimumAddress).Cut Worksheets("Template").Range("D" & i)
Markoko
Messages postés
7
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
18 juillet 2014
16 juil. 2014 à 17:13
16 juil. 2014 à 17:13
effectivement c'est bien plus simple !!! Merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 15/07/2014 à 21:10
Modifié par michel_m le 15/07/2014 à 21:10
re,
Si j'ai pigé, tu veux reproduire le tableau de forecaste dans template dans l'orde croissant des dates références (colonne 4,7,10)
si oui
sans select-selection copy ou cut-paste, grands mangeurs de RAM et de temps...
tu débutes: il est important pour chacun d'activer "option explicit" et de déclarer les variables
crois- moi, c'est plus qu'utile lorsque tu fais des essais : faute de frappe, mauvais choix de type etc, âneries que l'on sait tous très bien faire !
de m^me , indenter le code permet une lecture plus facile (penser a la maintenance ou évolution par toi ou une autre personne: 80% du temps de vie de l'appli)
Michel
Si j'ai pigé, tu veux reproduire le tableau de forecaste dans template dans l'orde croissant des dates références (colonne 4,7,10)
si oui
sans select-selection copy ou cut-paste, grands mangeurs de RAM et de temps...
tu débutes: il est important pour chacun d'activer "option explicit" et de déclarer les variables
crois- moi, c'est plus qu'utile lorsque tu fais des essais : faute de frappe, mauvais choix de type etc, âneries que l'on sait tous très bien faire !
de m^me , indenter le code permet une lecture plus facile (penser a la maintenance ou évolution par toi ou une autre personne: 80% du temps de vie de l'appli)
Option Explicit
'------
Sub markoko()
Dim Minimum As Double, Minimumadresse As String
Dim Tri As Byte, Col As Byte
Dim Tampon(2)
Dim Lig As Byte, Debut As String
Application.ScreenUpdating = False
For Lig = 5 To 7
With Sheets("forecast")
For Tri = 1 To 3
If .Cells(Lig, 4) <> "" Then
Minimum = CDbl(.Cells(Lig, 4))
Minimumadresse = .Cells(Lig, 4).Address
End If
For Col = 7 To 10 Step 3
If .Cells(Lig, Col) <> "" Then
If Minimum > CDbl(.Cells(Lig, Col)) Then
Minimum = CDbl(.Cells(Lig, Col))
Minimumadresse = .Cells(Lig, Col).Address
End If
End If
Next Col
Tampon(0) = .Range(Minimumadresse).Offset(0, -2)
Tampon(1) = .Range(Minimumadresse).Offset(0, -1)
Tampon(2) = .Range(Minimumadresse)
.Range(Minimumadresse & ":" & Range(Minimumadresse).Offset(0, -2).Address) = ""
With Sheets("template")
Debut = Choose(Tri, "B", "E", "H")
.Cells(Lig, Debut).Resize(1, 3) = Tampon
End With
Minimum = 99999
Next Tri
End With
Next Lig
Sheets("template").Activate
End Sub
Michel
Markoko
Messages postés
7
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
18 juillet 2014
17 juil. 2014 à 10:32
17 juil. 2014 à 10:32
C'est genial !!! Merci beaucoup ! Et à la fin du code il me reste plus qu'a ajouter un copier-coller pour récupérer les données triées sur le forecast. Je vous tiens au courant, en tout cas merci beaucoup car sans vous j'aurais encore un code un peu dégueu ^^ et en plus qui ne fonctionnerait pas bien.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
17 juil. 2014 à 11:37
17 juil. 2014 à 11:37
bonjour,
Et à la fin du code il me reste plus qu'a ajouter un copier-coller pour récupérer les données triées sur le forecast
??? Comprend pas... sauf erreur de ma part ,les données de forecast sont écrites dans template
With Sheets("template")
Debut = Choose(Tri, "B", "E", "H")
.Cells(Lig, Debut).Resize(1, 3) = Tampon
End With
pour reporter des données, on évite au maximum d'utiliser "copier-coller"
Et à la fin du code il me reste plus qu'a ajouter un copier-coller pour récupérer les données triées sur le forecast
??? Comprend pas... sauf erreur de ma part ,les données de forecast sont écrites dans template
With Sheets("template")
Debut = Choose(Tri, "B", "E", "H")
.Cells(Lig, Debut).Resize(1, 3) = Tampon
End With
pour reporter des données, on évite au maximum d'utiliser "copier-coller"
Markoko
Messages postés
7
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
18 juillet 2014
17 juil. 2014 à 12:02
17 juil. 2014 à 12:02
C'est à dire que les données dans Forecast n'étaient pas encore triées, on utilise la feuille template pour les classer, puis après on les remets dans le forecast, comme ca on obtient une feuille forecast bien rangée.
J'ai réussi à le faire par un copier-coller c'est ce qui m'est apparu comme étant le plus simple. Mais comment faire autrement ?
Merci
J'ai réussi à le faire par un copier-coller c'est ce qui m'est apparu comme étant le plus simple. Mais comment faire autrement ?
Merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
17 juil. 2014 à 13:51
17 juil. 2014 à 13:51
Comme c'est des petits tableaux, c'est dpmmage mais laisse comme çà
Markoko
Messages postés
7
Date d'inscription
mercredi 9 juillet 2014
Statut
Membre
Dernière intervention
18 juillet 2014
17 juil. 2014 à 13:55
17 juil. 2014 à 13:55
en fait dans l'exemple que je vous ai montré c'est un petit tableau, mais en réalité c'est plus grand, il y a environ 400 lignes (du coup la variable Lig est une integer) et environ 16 dates à trier, mais ca fonctionne. Par-contre si on peut optimiser le "copier/coller" je serai intéressé de savoir comment :)
15 juil. 2014 à 15:14
«mais il y a beaucoup d'autres choses à revoir.... » Entièrement d'accord !!!
@Markoko
Commencer par la suppression de tous les Select ...
Cordialement
Patrice
Modifié par Markoko le 15/07/2014 à 15:42
Mais les select j'en ai besoin, le code une fois qu'il a trouvé sur une ligne la plus petite date, il l'a copie sur autre feuille pour après la remettre sur la feuille forecast mais en 1ère position. Je pense que j'ai mal exprimer ce que je souhaite faire, voici un exemple :
On a 25/05/2014 12/03/2014 08/08/2014
On desire 12/03/2014 25/05/2014 08/08/2014
Modifié par michel_m le 15/07/2014 à 17:02
je n'avais pas pensé qu'il pouvait peut-^tre y avoir d'autres données dans les colonnes entre D et J mais je ne savais qu'il s'agissait de date (piège)
Option Explicit
'------