> Tous les forums > Forum Bureautique
 Macro excel pour calcul d’itérationSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
userinfo
  Posté le 12/05/2019 @ 18:27 
Aller en bas de la page 
Nouvel astucien
Bonjours,

J’ai 62 longue listing (62 Etat).

Je souhaite faire une macro excel pour calculer le nombre d’itération des nombres dans la colonne ‘C’ et mettre le résultat dans un tableau déjà tracé.

Ceci pour chaque Etat.

A noter que :

  • Le nombre de ligne de chaque Etat varie,
  • Chaque état commence par le mot ‘’Etat’’ et se termine par une ligne vide puis le mot ‘END’

Pour le moment j’ai procédé à faire le calcul pour chaque état de façon manuel avec la fonction Excel NB.SI ;

avec cette fonction, qui reste statique, je suis obligé de sélectionner chaque liste et faire le calcul puis copier la formule dans les dix-huit case.

Ci-dessous la capture d’écran d’un exemple réduit de trois états.

Un grand merci pour votre aide.

Publicité
Debrief
 Posté le 12/05/2019 à 23:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Pourquoi n'enverrais-tu pas ton fichier pour faciliter les essais ?

D.

Et aussi... Pourquoi Etat 1 est décalé par rapport aux autres Etat 2, Etat 3 ?

Il faut le descendre "Etat" de A1 en A2 et et "1" de A2 en A3 pour que ce soit homogène...et utiliser ce module à importer dans ton code VBA -> https://www.cjoint.com/c/IEmwovg5Ddl

Cordialement,
D.



Modifié par Debrief le 13/05/2019 00:22
userinfo
 Posté le 13/05/2019 à 13:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

bonjour,

Merci Debrief de ton aide a mon sujet.

Ci-joint le lien de mon fichier excel https://www.cjoint.com/c/IEnlLZkHGgh

Dans la capture d’écran de mon post dernier, j'ai pas voulu encombrer le fichier pour qu'il soit clair et lisible..seulement j'ai supprimé

des lignes sans le vouloir lors du traçage des tableaux qui recevront les résultats, qui en faite j'aimerais bien les regrouper dans un seule tableau de

soixante deux lignes dans une autre feuille.

Merci.

Debrief
 Posté le 13/05/2019 à 17:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Voici le fichier Excel avec la Macro et un bouton pour l'appeler -> https://www.cjoint.com/c/IEnpXOWo2Qe

La valorisation des résultats se fait dans la feuille "Résultats".

J'ai laissé la valorisation des tableaux dans la feuille "listing". Si tu veux la supprimer, supprime l'instruction GoSub ReportFréquences.

Et éventuellement aussi la séquence de ReportFréquences: à Return qui ne servirait alors plus à rien.

Debrief
 Posté le 13/05/2019 à 18:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Comme tu as décalé tous les Tags "Etat" vers le haut au lieu de décaler le 1er vers le bas, les résultats sur la feuille "listing" écrasent leur ligne titre.

Je ne l'avais pas remarqué. Voici un fichier corrige -> https://www.cjoint.com/c/IEnqtfj1Sle

Edit: A noter que pour la macro le début de la série de chiffres commence sur la ligne du tag "Etat" et finit sur la ligne du tag "END".
Donc les lignes à blanc ne servent à rien, surtout si tu supprimes les résultats de la feuille
"listing" qui doivent tenir compte du décalage (+3) entre la ligne du tag "Etat" et la ligne des résultats.



Modifié par Debrief le 13/05/2019 18:26
userinfo
 Posté le 13/05/2019 à 22:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Bonsoir,

Excellent travail Debrief. Ta solution est bien adéquate à ma requête.

Je vais supprimer les tableaux individuels de la feuille "listing" et garder un seule tableau

récapitulatif de la feuille Résultat’.

Encore une fois, un grand merci de tes efforts.

userinfo
 Posté le 13/05/2019 à 23:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Re-bonsoir,

je reviens encore vers toi Debrief. Voila quand j'essaye de mettre mon fichier source dans la feuille 'listing' et je l'exécute, il me renvoi un message

de bug qui disait qu'il y a un dépassement de capacité au niveau de la foncion NoBCUID = CInt (CelTag.Offset (1,0).Value

Les numéros d’Etat pour mon fichier source sont des grands nombres, exemple 100542, 130025 Et qui ne sont pas séquentiel.

Et quand je change manuellement le numéro de l’Etat en 1 puis la suivante en 2 comme dans l’exemple de mon post, le fichier se bug a la ligne qui a le numéro d’Etat plus grand.

Peux-tu m’indiquer si il te plais ou puis-je intervenir dans le fichier que tu m’a envoyé pour remédier a ceci.

Merci.

Debrief
 Posté le 14/05/2019 à 00:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Il faut que tu remplaces la déclaration:

Dim NoEtat As Integer par Dim NoEtat As Long

et l'instruction:

NoEtat = CInt(CelTag.Offset(1, 0).Value) par NoEtat = CLng(CelTag.Offset(1, 0).Value)

Les Integer sont limités de -32.768 à 32.767.
Les Long sont limités de -2.147.483.648 à 2.147.483.647. J'espère que ça sera suffisant.

Si les références des États n'étaient pas toujours numériques (contenant des caractères autres que des chiffres) il faudrait les traiter en String.

D.



Modifié par Debrief le 14/05/2019 00:49
userinfo
 Posté le 14/05/2019 à 03:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Bonsoir,

Merci beaucoup de ton soutien. Cette fois la macro marche sans faute.

Merci.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
24,99 €Fire TV Stick Basic Edition à 24,99 €
Valable jusqu'au 03 Avril

Amazon fait une promotion sur la nouvelle version de sa clé HDMI Fire TV Stick Basic Edition qu'il propose à 24,99 € au lieu de 39,99 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Une télécommande est fournie. Avec elle, vous allez pouvoir voir facilement Prime Video, Netflix, YouTube, Spotify sur votre TV Full HD. Cette nouvelle version est désormais compatible Alexa et possède une télécommande améliorée (avec plus de boutons de contrôle). Si vous avez une TV 4K, tournez-vous vers le nouveau modèle Fire TV Stick 4K qui gère les contenus en Ultra HD et qui est actuellement en promotion à 44,99 € (au lieu de 59,99 €). 


> Voir l'offre
8,99 €McAfee Internet Security 2020 (3 appareils, 1 an) à 8,99 €
Valable jusqu'au 03 Avril

Amazon fait une promotion sur la suite antivirus Internet Security 2020 qui passe à 8,99 €. Cette protection intégrale alliant antivirus, protection de l'identité et protection de la confidentialité des données pour tous vos PC, Mac, smartphones et tablettes est valide pour 3 appareils pendant 1 an. La clé d'activation ainsi que le lien de téléchargement vous seront envoyés par email une fois la commande passée. Une très bonne affaire.


> Voir l'offre
279 €Casque sans fil à réduction de bruit Sony WH-1000XM3 (Hi-Res Audio, Bluetooth/NFC) à 279 €
Valable jusqu'au 07 Avril

Amazon propose actuellement le casque sans fil à réduction de bruit et Hi-Res Audio Sony WH-1000XM3 à 279 € livré gratuitement. On le trouve ailleurs à partir de 360 €. Jusqu'à 30h d'autonomie avec la fonction de réduction de bruit activée et fonction Quick Attention pour réduire instantanément le volume de votre musique et pouvoir suivre une conversation. 


> Voir l'offre

Sujets relatifs
Macro excel pour attribution de lot
Creation d' une boucle macro dans fichier EXCEL pour impression
Macro pour ouverture d'un fichier Excel
Macro pour créer un Gencode sur Excel - EAN 18
Macro pour un envoi feuille excel par mail
Macro excel pour enregistrer
macro excel pour convertir données
EXCEL RECHERCHEV pour autre fichier. Macro?
macro pour passer de word vers excel
calcul pour excel
Plus de sujets relatifs à Macro excel pour calcul d’itération
 > Tous les forums > Forum Bureautique