MA MACRO
Résolu/Fermé
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
-
26 déc. 2016 à 10:44
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 30 déc. 2016 à 13:35
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 30 déc. 2016 à 13:35
A voir également:
- MA MACRO
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Telecharger macro nblettre.xla - Forum Bureautique
4 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 26/12/2016 à 11:32
Modifié par ThauTheme le 26/12/2016 à 11:32
Bonjour Jean, bonjour le forum,
Peut-être comme ça :
À plus,
ThauTheme
Peut-être comme ça :
Sub Macro1() Dim O As Worksheet 'déclare la variable O (Onglet) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'déclare la variable I (Incrément) Dim J As Integer 'déclare la variable J (incrément) Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes) Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas) TV = O.Range("A1").CurrentRegion 'définit le tableau des valeur TV Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D For I = 2 To UBound(TV, 1) - 1 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde et sans la dernière) If TV(I + 1, 1) <> TV(I, 1) Then 'condition : si la donnée en ligne I + 1 est différente que la donnée en ligne I (dans la colonne 1) ReDim Preserve TL(J) 'redimensionne le tableau des lignes TL TL(J) = I + 1 'stocke le numéro de ligne I + 1 J = J + 1 'incrémente J End If 'fin de la condition Next I 'prochaine ligne de la boucle For J = UBound(TL) To LBound(TL) Step -1 'boucle inversée sur tous les éléments J du tableau des lignes TL O.Rows(TL(J)).Insert shift:=xlShiftDown 'insère une ligne avant la ligne de l'élément J de TL Next J 'prochain élément de la boucle End Sub
À plus,
ThauTheme
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
26 déc. 2016 à 16:09
26 déc. 2016 à 16:09
Bonjour,
Quel est l'objectif recherché, pourquoi détruire la base de données en y insérant des lignes ?
Quel est l'objectif recherché, pourquoi détruire la base de données en y insérant des lignes ?
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
27 déc. 2016 à 07:54
27 déc. 2016 à 07:54
Salut Patrice, l'objectif recherchée est le suivant, je voudrais écrire une macro qui va me permettre de séparer (inserer une ligne) une liste d'article en les regroupant par famille.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
27 déc. 2016 à 08:12
27 déc. 2016 à 08:12
Ça, je l''avais bien compris, mais ce n'est pas un objectif, dans quel but fais-tu ça ?
Sachant que ça aura pour effet de détruire la cohérence de ta base de données, ne serait-t-il pas préférable de travailler dans un autre onglet ?
Sachant que ça aura pour effet de détruire la cohérence de ta base de données, ne serait-t-il pas préférable de travailler dans un autre onglet ?
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
27 déc. 2016 à 08:38
27 déc. 2016 à 08:38
Patrice, il ne s’agit pas d'une base de données, je voudrais simplement automatisée une tache que j'ai l'habitude de faire manuellement pour gagner du temps. En fait le but est de faire des régularisations de stock. C'est un document d'inventaire.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 27/12/2016 à 08:42
Modifié par Patrice33740 le 27/12/2016 à 08:42
Un exemple de différentiation par MFC, sans macro et sans insérer de ligne supplémentaire :
https://www.cjoint.com/c/FLBhPQoyNC1
Cordialement
Patrice
https://www.cjoint.com/c/FLBhPQoyNC1
Cordialement
Patrice
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
27 déc. 2016 à 09:19
27 déc. 2016 à 09:19
Voici un exemple du résultat recherché dans l'onglet (Feuil2) :
https://www.cjoint.com/c/FLBirpP5OAL
https://www.cjoint.com/c/FLBirpP5OAL
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
27 déc. 2016 à 15:04
27 déc. 2016 à 15:04
Re,
Donc l'objectif c'est de pouvoir faire des sous-totaux par famille !
Excel sait faire ça tout seul sans macro !
Par contre que ce soit avec une macro ou sans, il faut pouvoir identifier les familles.
Au vu de ton exemple, il s'avère que la méthode que tu envisageais (avec des mots clés) ne peut pas fonctionner. Le fichier MFC que je t'ai envoyé, montre les limites de cette méthode (que ce soit par formule ou par macro).
Le plus simple est d'ajouter une colonne qui identifie les familles. Dans ce cas il suffira de demander à Excel des sous-totaux.
Donc l'objectif c'est de pouvoir faire des sous-totaux par famille !
Excel sait faire ça tout seul sans macro !
Par contre que ce soit avec une macro ou sans, il faut pouvoir identifier les familles.
Au vu de ton exemple, il s'avère que la méthode que tu envisageais (avec des mots clés) ne peut pas fonctionner. Le fichier MFC que je t'ai envoyé, montre les limites de cette méthode (que ce soit par formule ou par macro).
Le plus simple est d'ajouter une colonne qui identifie les familles. Dans ce cas il suffira de demander à Excel des sous-totaux.
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
Modifié par jeandchanel le 29/12/2016 à 08:53
Modifié par jeandchanel le 29/12/2016 à 08:53
Bonjour Patrice, la methode des Sous-totaux ne marche pas. voici un apercu du resultat obtenu dans le fichier ci-joint (onglet Feuil3) :
https://www.cjoint.com/c/FLDhXmkfobL
https://www.cjoint.com/c/FLDhXmkfobL
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
29 déc. 2016 à 09:48
29 déc. 2016 à 09:48
Bonjour,
La méthode fonctionne si tu fait ce que j'ai écrit :
Le plus simple est d'ajouter une colonne qui identifie les familles. Dans ce cas il suffira de demander à Excel des sous-totaux.
Par exemple :
https://www.cjoint.com/c/FLDiUNVfEj1
Patrice
La méthode fonctionne si tu fait ce que j'ai écrit :
Le plus simple est d'ajouter une colonne qui identifie les familles. Dans ce cas il suffira de demander à Excel des sous-totaux.
Par exemple :
https://www.cjoint.com/c/FLDiUNVfEj1
Patrice
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
29 déc. 2016 à 13:04
29 déc. 2016 à 13:04
Bonjour,
Effectivement ça marche, merci beaucoup. J'ai un autre soucis, je voudrais que vous m'expliquiez un peu la formule que vous avez tapé dans l'onglet Feuil1 colonne K, elle pourra m’être très utile.
Effectivement ça marche, merci beaucoup. J'ai un autre soucis, je voudrais que vous m'expliquiez un peu la formule que vous avez tapé dans l'onglet Feuil1 colonne K, elle pourra m’être très utile.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
29 déc. 2016 à 20:27
29 déc. 2016 à 20:27
Bonjour,
Dans la formule, la partie :
permet d'extraire le premier mot du texte de la cellule B3. C'est à dire depuis le début du texte jusqu'au premier espace, ou jusqu’à la fin si il n'y a pas d'espace dans le texte
Donc :
La partie :
La formule complète : Si le premier mot de la cellule précédente de la colonne désignation est égal au premier mot de la cellule de la colonne désignation, alors, le résultat est le même que celui de la cellule résultat précédente, sinon le résultat est égal au résultat de la cellule précédente + 1.
Quand à la formule de la MFC :
Patrice
Dans la formule, la partie :
GAUCHE($B3;CHERCHE(" ";$B3&" "))
permet d'extraire le premier mot du texte de la cellule B3. C'est à dire depuis le début du texte jusqu'au premier espace, ou jusqu’à la fin si il n'y a pas d'espace dans le texte
Donc :
GAUCHE($B3;CHERCHE(" ";$B3&" "))=GAUCHE($B2;CHERCHE(" ";$B2&" "))permet de comparer le premier mot de B3 avec le premier mot de B4
La partie :
N(K2)donne la valeur du nombre situé dans la cellule précédente K2. Si la cellule contient du texte le résultat de N(K2) est 0.
La formule complète : Si le premier mot de la cellule précédente de la colonne désignation est égal au premier mot de la cellule de la colonne désignation, alors, le résultat est le même que celui de la cellule résultat précédente, sinon le résultat est égal au résultat de la cellule précédente + 1.
Quand à la formule de la MFC :
=MOD($K3;2)=0elle es VRAI quand le reste de la division par 2 du nombre en K3 esr égal à 0, c'est a dire que la MFC apparaît pour tous les nombres pairs de la colonne K.
Patrice
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
30 déc. 2016 à 13:35
30 déc. 2016 à 13:35
Merci pour toutes vos explications . A bientot !
26 déc. 2016 à 11:53
26 déc. 2016 à 12:31
26 déc. 2016 à 13:26
Fais l'effort de fournir un fichier, on perdra moins de temps. Regarde du coté de https://www.cjoint.com/ par exemple...
26 déc. 2016 à 13:57
il s’agit pour moi d’écrire une macro qui va m'aider a regrouper les articles par "famille"
26 déc. 2016 à 14:20