Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/10/2011, 08h41   #1
Invité régulier
 
Inscription : mai 2010
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2010
Messages : 26
Points : 7
Points : 7
Par défaut Actualisation des données : Equivalent F9

Bonjour les amis,

j'ai confronté un petit problème e ce que l'on pourrait appeler "actualisation d'une feuille". En fait, j'ai créer cette macro qui permet de trier une colonne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub trie_arrivee()
Dim tab1(1 To 250) As Single
For i = 1 To 250
tab1(i) = Sheets("feuil5").Cells(i + 6, 5)
Next
 
For i = 1 To 249
   For j = i To 250
 If tab1(i) > tab1(j) Then
    c = tab1(i)
    tab1(i) = tab1(j)
    tab1(j) = c
End If
Next
Next
For i = 1 To 250
Sheets("feuil5").Cells(i + 6, 6) = tab1(i)
Next
 
 End Sub
Je veux faire lancer cette macro si je clique sur F9. Est ce que c'est faisable ou non ? Mais, il faut noter que les données des cellules E sont aléatoires et sont importées à partir d'une autre feuille, j'ai essayé avec un trie simple "sans macro" mais je n'arrive pas à le faire car le trie de la colonne E provoque le changement de la formule dans la cellules...
yassinefeki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 10h54   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour
Alors la, il faut plus de précision sur la disposition de ta feuille.
Tes formules sont où?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 17h45   #3
Invité régulier
 
Inscription : mai 2010
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2010
Messages : 26
Points : 7
Points : 7
bonjour,

La formule est dans la cellule à laquelle je vais faire le tri..La formule est la suivante :
Code :
SI(D7='4-a'!C10;SI('4-a'!K10<>0;'4-a'!M10;'4-a'!Q11);SI(Feuil5!D7='suite 4-a'!C10;SI('suite 4-a'!K10<>0;'suite 4-a'!M10;'suite 4-a'!Q11)))
Si tu remarque dans la formule, je vais importer les données à partir des deux feuille ( '4-a' et 'suite 4-a' ). Lorsque j'ai fais un tri simple par excel, il s'affiche dans les cellules triées "Faux" alors j'étais obligé de le faire par une macro sauf que j'ai confronté au problème d'actualisation des données de la cellule que je dois la triée...
yassinefeki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 18h08   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Tu veux garder les formules dans E1:E250 après le tri?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 18h49   #5
Invité régulier
 
Inscription : mai 2010
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2010
Messages : 26
Points : 7
Points : 7
Oui si c'est possible sans le recours à la macro....Par ce que comme je t'ai dit, la colonne est dynamique (aléatoire).
yassinefeki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 19h08   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Alors il te faut expliquer davantage.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/10/2011, 20h21   #7
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Pourquoi ne tries-tu pas avec les outils Excel, sur l'ensemble de ta plage?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 04h31   #8
Invité régulier
 
Inscription : mai 2010
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mai 2010
Messages : 26
Points : 7
Points : 7
Salut,

Je vais expliquer plus. j'ai une chaîne de production et je vais simuler le temps de traitement de 250 pièces en tenant compte des temps d'attente ( file d'attente). Au début les temps d'inter-arrivée sont exponentielles, et donc j'ai utilisé cette formule :
Code :
=ARRONDI(-(1/$C$3)*LN(ALEA());0)
. Avec aléa les cellules deviennent aléatoires c'est à dire si je fais un clic sur F9 tous les données vont changer. Après un certain calculs, j'arrive à la dernière machine de la chaîne de production. Donc, il s'agit des arrivées des pièces sachant que j'utilise la règle FIFO ( First In, First Out ). Donc j'ai besoin de mettre les temps d'arrivée des pièces en ordre croissant. Pour cela, j'ai importée ces temps là à partir de deux autres feuilles qui sont 4-a et 4-a suite dans la colonne E de la feuille "Feuil5" (de E8--> E257). Puis, si j'utilise le trie d'excel dans la cellule, les formule vont changer,

Par exemple, soit la valeur de la cellule E126 dont la formule (f1) est la suivante :

Code :
SI(D132='4-a'!C135;SI('4-a'!K135<>0;'4-a'!M135;'4-a'!Q136);SI(Feuil5!D132='suite 4-a'!C135;SI('suite 4-a'!K135<>0;'suite 4-a'!M135;'suite 4-a'!Q136)))
, Selon cette formule, excel a importé la valeur de la cellule Q135 de la feuille suite 4-a dans la cellule E126. Supposons que cette valeur est la plus petite dans la colonne E de la "Feuil5", alors lorsque j'ai fait un trie avec excel, cette valeur va changer de place et devient dans la cellule E8, ceci affecte le changement de la formule f1 et elle devient :
Code :
SI(D8='4-a'!C10;SI('4-a'!K10<>0;'4-a'!M10;'4-a'!Q11);SI(Feuil5!D8='suite 4-a'!C10;SI('suite 4-a'!K10<>0;'suite 4-a'!M10;'suite 4-a'!Q11)))
et par conséquent, il s'affiche dans cette cellule E8 la valeur "Faux", en fait si tu remarques il devra D8 au lieu D132, de même pour K, M, Q..Pour cela j'ai développé une macro de trie mais il me manque seulement l'actualisation de trie à chaque fois les valeurs de la colonne E varient, c'est à dire la macro devra fonctionner automatiquement lorsque je clique sur F9 et par la suite le trie devient dynamique suivant le changement des valeurs de la colonne E... Je pense que c'est un peu long mais je te remercie beaucoup beaucoup pour ton temps et ton suivi de mon problème...
======================
Cordialement,
yassinefeki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 06h32   #9
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Oui, tu as l'événement
Code :
Private Sub Worksheet_Calculate()
qui te permet de déclencher une macro après calcul de la feuille.

Tu as intérêt à bien gérer application.enableevents sinon, tu vas boucler entre ta macro de tri et Calculate
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h45.


 
 
 
 
Partenaires

Hébergement Web