Tableau récapitulatif
Résolu
cedrixxx
Messages postés
37
Statut
Membre
-
cedrixxx Messages postés 37 Statut Membre -
cedrixxx Messages postés 37 Statut Membre -
Bonjour a toutes et a tous,
Alors voila mon problème j'ai dans une feuille de calcul qui repère une erreur "Machine non répertorié" en colonne AJ, j'ai en colonne AF le numéro de machine correspondante.
J'aimerais avoir une petite liste récapitulatif sur une autre feuille qui mettrais les numéros de machines classé comme "Machine non répertorié"
36_24
36_60
36_60
36_68
36_68
40_01 Machine non répertorié
40_01 Machine non répertorié
40_01 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_53 Machine non répertorié
40_56
40_57
Ce qui donnerais par exemple:
Machines non répertorié:
40_01
40_06
40_53
Merci par avance.
Alors voila mon problème j'ai dans une feuille de calcul qui repère une erreur "Machine non répertorié" en colonne AJ, j'ai en colonne AF le numéro de machine correspondante.
J'aimerais avoir une petite liste récapitulatif sur une autre feuille qui mettrais les numéros de machines classé comme "Machine non répertorié"
36_24
36_60
36_60
36_68
36_68
40_01 Machine non répertorié
40_01 Machine non répertorié
40_01 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_06 Machine non répertorié
40_53 Machine non répertorié
40_56
40_57
Ce qui donnerais par exemple:
Machines non répertorié:
40_01
40_06
40_53
Merci par avance.
A voir également:
- Tableau récapitulatif
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
8 réponses
Les cellules fusionnées sont toujours une source de problèmes aussi bien dans l'utilisation de fonctions excel que dans l'utilisation de macros.
Pour essayer d'aller plus loin, peux tu envoyer un bout de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".
Cdlmnt
Pour essayer d'aller plus loin, peux tu envoyer un bout de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".
Cdlmnt
https://www.cjoint.com/doc/16_09/FIBlIqfSA6t_R%C3%A9activit%C3%A9-et-dispo-Juillet.xls
Je pense ne pas trop être a coter de la plaque mais bon...
Pour le résultats s'il n'est pas en A147 ce n'est pas vraiment grave tant que le listing des machines "en erreur" est facilement visible.
Cordialement,
ub Test_Indispo() ' ' Test_Indispo Macro ' ' Touche de raccourci du clavier: Ctrl+a ' Application.Run "PERSONAL.XLSB!Test_Indispo" Range("AI6").Select Application.Run "PERSONAL.XLSB!Test_Indispo" Option Explicit ' constantes à modifier selon ta configuration ' Feuille Source Const FS = "Données_corrigées" Const lidebFS = 2 Const comacFS = "AF" Const coerrFS = "AJ" ' Feuille But Const FB = "Listing-machine" Const celdebFB = "A147" ' message recherché Const s = "Machine non répertorié" Public Sub OK() Dim liFS As Long, lifinFS As Long Dim dico As Object, cle As String, cles, nbcles As Long ' dictionnaire des machines en erreur Set dico = CreateObject("scripting.dictionary") With Sheets(FS) lifinFS = .Range(comacFS & Rows.Count).End(xlUp).Row For liFS = lidebFS To lifinFS If s = .Range(coerrFS & liFS).Value Then cle = .Range(comacFS & liFS).Value If (Not dico.exists(cle)) Then dico.Add cle, 1 End If Next liFS End With nbcles = dico.Count cles = dico.keys ' resultat With Sheets(FB) .Columns(Range(celdebFB).Column).ClearContents .Range(celdebFB).Offset(-1, 0).Value = s .Range(celdebFB).Resize(nbcles, 1) = Application.Transpose(cles) End With End Sub End Sub
Je pense ne pas trop être a coter de la plaque mais bon...
Pour le résultats s'il n'est pas en A147 ce n'est pas vraiment grave tant que le listing des machines "en erreur" est facilement visible.
Cordialement,
1. Dans ta procedure Test_Indispo
Tu supprimes tout ce qui à trait à ma procedure OK
Tu remplaces le tout par un appel à la procedure OK
Call OK
2. Dans un module général (Module 1 par exemple), tu colles ceci (j'ai souligné les lignes modifiées)
3. Je ne comprends pas ce que viennent faire ces lignes
Sub Test_Indispo()
'
' Test_Indispo Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
Application.Run "PERSONAL.XLSB!Test_Indispo"
Range("AI6").Select
Application.Run "PERSONAL.XLSB!Test_Indispo"
Option Explicit
Cdlmnt
Tu supprimes tout ce qui à trait à ma procedure OK
Tu remplaces le tout par un appel à la procedure OK
Call OK
2. Dans un module général (Module 1 par exemple), tu colles ceci (j'ai souligné les lignes modifiées)
Option Explicit
' constantes à modifier selon ta configuration
' Feuille Source
Const FS = "Données_corrigées"
Const lidebFS = 2
Const comacFS = "AF"
Const coerrFS = "AJ"
' Feuille But
Const FB = "Listing-machine"
Const celdebFB = "A147"
' message recherché
Const s = "Machine non repertorier"
Public Sub OK()
Dim liFS As Long, lifinFS As Long
Dim dico As Object, cle As String, cles, nbcles As Long
' dictionnaire des machines en erreur
Set dico = CreateObject("scripting.dictionary")
With Sheets(FS)
lifinFS = .Range(comacFS & Rows.Count).End(xlUp).Row
For liFS = lidebFS To lifinFS
If s = .Range(coerrFS & liFS).Value Then
cle = .Range(comacFS & liFS).Value
If (Not dico.exists(cle)) Then dico.Add cle, 1
End If
Next liFS
End With
nbcles = dico.Count
cles = dico.keys
' resultat
With Sheets(FB)
.Range(celdebFB).Resize(1000, 1).ClearContents
.Range(celdebFB).Offset(-1, 0).Value = s
.Range(celdebFB).Resize(nbcles, 1) = Application.Transpose(cles)
End With
End Sub
3. Je ne comprends pas ce que viennent faire ces lignes
Sub Test_Indispo()
'
' Test_Indispo Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
Application.Run "PERSONAL.XLSB!Test_Indispo"
Range("AI6").Select
Application.Run "PERSONAL.XLSB!Test_Indispo"
Option Explicit
Cdlmnt
Dans ce cas, le code que je t'ai proposé ci-dessus suffit. A mettre dans un module général (dans l'éditeur vba Insertion/Module pour en créer un)
Si tu veux des explications, tu dis
Cdlmnt
Si tu veux des explications, tu dis
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu laisses tomber la partie 1 ci-dessus
Seule la partie 2 est à utiliser
depuis Option xplicit jusqu'à End Sub
Tu peux changer le nom de la procédure OK si tu veux
Public Sub OK() par Public Sub Test_Indispo()
Je te renvoies ton fichier avec la procedure OK dans le Module 1
http://www.cjoint.com/c/FICjrYsC8rq
Cdlmnt
Seule la partie 2 est à utiliser
depuis Option xplicit jusqu'à End Sub
Tu peux changer le nom de la procédure OK si tu veux
Public Sub OK() par Public Sub Test_Indispo()
Je te renvoies ton fichier avec la procedure OK dans le Module 1
http://www.cjoint.com/c/FICjrYsC8rq
Cdlmnt
De rien,
Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Cdlmnt
Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Cdlmnt
lorsque l'reeur se produit, passes sur la variable nbcles
Je pense qu'elle est égale à 0, ça doit encore être une histoire de "machine non repertorier" sur le fichier que j'ai
Il te suffit de mofifier le texte dans les constantes
Const s = "Machine non repertorier"
Cdlmnt
Je pense qu'elle est égale à 0, ça doit encore être une histoire de "machine non repertorier" sur le fichier que j'ai
Il te suffit de mofifier le texte dans les constantes
Const s = "Machine non repertorier"
Cdlmnt
C'est exactement ce dont j'avais besoin, merci beaucoup.
Cependant je n'arrive pas à retranscrire la macro dans mon fichier, enfin j'ai une erreur persistante "erreur 1004 cette action ne peut pas être appliqué a une cellule fusionné"