Liaison entre trois tableaux avec petite formule
Bonsoir a tous ,je suis debutant .J'ai decouvert votre site il y a peu de temps je le trouve formidable avec toute ces personnes tres simpatique et qui aide les autres ;
donc je suis reveins vers vous ,voila mon souci
Avec l'aide de Grand Chanan ,il m'a fait un tableau que veux utilisé avec deux autres
je vous ai mis en piece jointe une explication (fichier ABC )
Je pense avec vos connaissances rien n'est imposible.
merci d'avance
Bonsoir Manutention59,
Voici une proposition pour ce que tu cherches à accomplir. Je me suis permis de tout mettre dans le même fichier car c'est beaucoup facile à gérer ainsi que d'avoir 3 fichiers différents.
Dans l'onglet "Échange", dès que tu entre un numéro dans la colonne C, la valeur est indiqué dans la colonne D, si le timbre existe dans un des 4 onglets (0 à 5000).
Si tu entres un numéro dans la colonne I, le numéro de timbre sera BARRÉ. C'est aussi faisable de l'effacer, mais je préfères que tu fasses quelques tests et confirmes que tout est fonctionnel.
A+
bonjour Grand Chaman je vous remmerci ,vous avez fait un excelent travail avec une rapidite en plus.Cela va me facilite dans mes echange .J'aimerai si cela n'est pas trop dure a explique comment avez vous procédé,je suis un peu curieux ,
Car comme vous avez pu le constater j'avais plusieurs fichier car cela ma parue normale pour moi mais assez lourd a gerer.Je vois qu'il excite encore des personnes qui donne de leur temps et la chapeau bas.
je teste tout cela
encore merci
bonsoir Grand Chaman,j'ai teste cela me va trés bien .
j'aurai une petite question:
sur l'onglet echange,si j'echange plus de timbres que la liste est que je peux tiré vers le bas le tableau ,je pense que oui mais je ne voudrais pas planté ton progamme.
sur l'onglet (2001-3000) dans la cellule A1 il y a le 2046 alors qu'il est deja trié ,si je le supprime je risque quoi
deux fois le progamme c'est plante ,sur l'onglet (feuille)je n'ai plus le croquis,et sur l'onglet (echange) le tableau ce termine sur la ligne A avec (erreur d'exécution '424' avec le mot debogage )
le fichier est trop gros je ne peux pas vous l'envoye
je vous remerci d'avance
manuel
Bonsoir Manu,
Pour répondre à tes questions :
1) Dans l'onglet échange, tu peux ajouter ou supprimer des lignes mais attention, il ne faut pas toutes les supprimer, sinon tu vas avoir l'erreur 424 comme tu mentionnes. La macro que je t'ai fait utilise 2 plages nommées dans I3:I19 et dans C3:C9, nommées respectivement "pPourManu" et "pPourX". Dès qu'un numéro de timbre est entré, la macro s'exécute (soit recherche de la cote ou soit rayer dans la liste). Si la plage n'existe plus, l'erreur 424 survient.
Pour voir les plages nommées, clique sur la flèche par en bas, dans la boîte blanche en haut à gauche à côté de la boîte de formule. Normalement, c'est le numéro de la cellule qui est écrit, exemple A1, A2, ... Si tu cliques sur la flèches, tu devrais voir "pPourManu" et "pPourX". Choisis un au l'autre pour voir les plages nommées.
Ceci étant dit, si tu veux ajouter des lignes à ton tableau, places toi entre les lignes 3 et 19 et insère les lignes. Les plages nommées vont s'ajuster automatiquement. Même chose si tu veux enlever des lignes. Mais il ne faut pas toutes les enlever (comme dans le dernier fichier que tu as joint).
Est-ce que c'est toi qui les a enlevées?
2) Dans l'onglet 2001-3000, tu peux effacer le 2046. Ça ne devrait pas causer de problème.
Note : pour la macro qui raye le numéro dans le mancoliste, il faut ABSOLUMENT que tu gardes la même façon d'écrire les numéros pour une même année, c'est-à-dire, séparé par un "/" sans espace. Exemple, 264/265/266
Si tu écris le numéro "264", la macro cherche en fait 264/ (placé en début) ou /264/. Le séparateur est important pour différencer 264 de 1264/ ou 2264/ ou 2641/ par exemple.
En écrivant cela, je me rends compte qu'il y un faille dans la macro car le dernier numéro de timbre n'est pas suivi d'un "/" à la fin. Par exemple, si tu cherches 268, il ne sera pas rayé. Je vais penser à une façon de régler cela, le plus simple sera d'ajouter un "/" à la fin de chaque ligne.
A+
-- 08 Juin 2011, 19:39 --
Re-Bonsoir Manu,
Voici un code qui te permettra d'ajouter un "/" à la fin de chaque ligne dans la Mancoliste et régler le petit problème que je mentionnais dans le message précédent.
Sub FormatMancoliste()
Dim ws As Worksheet, rg As Range, c As Range
Set ws = Sheets("Mancoliste")
Set rg = ws.Range("B1:B" & ws.Range("B60000").End(xlUp).Row)
For Each c In rg
If c.Value <> "" And c.Interior.ColorIndex = xlNone Then
If Right(c, 1) <> "/" Then c = c & "/"
End If
Next c
End SubVoici les instructions pas à pas pour ajouter et exécuter ce code dans ton fichier.
1. Ouvre ton fichier
2. Appuie sur CTRL + F11 pour ouvrir l'éditeur VBA
3. Dans l'arborescence, trouve ton fichier et ensuite Module1
4. Double clique sur Module1 et clique à un endroit dans le carré blanc à droite qui contient le code
5. Va jusqu'en bas (truc : CTRL + FIN)
6. Copie le code à cet endroit.
7. Pour exécuter la macro, tu peux :
a) toujours dans l'éditeur VBA, placer le curseur quelque part dans le code que tu viens de copier (exemple cliquer une fois sur Sub FormatMancoliste)
b) En haut dans la barre d'outil, cliquer sur le triangle vert (bouton Play) ou simplement faire F5
ou bien, dans ton fichier Excel,
a) faire ALT + F8 pour ouvrir le menu de macros
b) Sélectionner FormatMancoliste et ensuite cliquer sur Exécuter
Laisse-moi savoir si tu as d'autres questions.
A+
Bonsoir Grand Chaman, merci pour vos conseils très avisés
Je viens de réaliser ce que vous m'avez conseillé à propos des /
j'aurai toutefois encore une question... " comment mettre un mot de passe ou rappel pour éviter que je recommence les erreurs (code 424)
merci manuel
Bonjour,
Pourquoi ne pas simplement écrire en M3 et M4 quelque chose du genre "Ne pas effacer cette ligne". De cette façon, il y aura toujours au moins 2 lignes dans le tableau et les macros vont fonctionner.
Sinon, tu peux aussi ajouter cette macro dans ton fichier :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Empêche d'effacer les lignes 1 à 4 de l'onglet Echange
If (Sh.Name = "Echange" And Target.Row <= 4) Then 'sur la feuille échange, lignes 1 à 4 seulement
If (Target.Address = Target.EntireRow.Address) Then
With Application
.EnableEvents = False
.Undo
MsgBox "Ne pas effacer cette ligne !", 16
.EnableEvents = True
End With
Else
Exit Sub
End If
End If
End SubVoici les instructions pas à pas pour ajouter et exécuter ce code dans ton fichier.
1. Ouvre ton fichier
2. Appuie sur ALT+ F11 pour ouvrir l'éditeur VBA
3. Dans l'arborescence, trouve ton fichier et ensuite ThisWorkbook
4. Double clique sur ThisWorkbook et clique à un endroit dans le carré blanc à droite qui contient le code
5. Va jusqu'en bas (truc : CTRL + FIN)
6. Copie le code à cet endroit.
7. La macro s'exécuter si tu essaies d'effacer les lignes 1,2 3 ou 4 dans l'onglet Echange.
A+
Bonjour Grand Chaman je reviens vers vous car il y a un plusieurs petit souci
1)je pense avoir bien rentre les codes
2)je me suis aperçu quand je mes un n°(echange manu) il de se barre pas dans mancoliste?
3)plusieurs fois quand je rentre es n° a trie cela fonctionne ,des que je revient sur echange il n'y a plus ou en partie jusque la ligne a3 mais pas de message d'alerte ou autre
Je que j'ai fais pour m'en assureje reprend a chaque fois le fichier d'origine que vous avez créer
merci pour votre gentillesse et votre patience
manuel
Bonjour,
En effet, il semble y avoir un problème avec la macro à trier. Je vais regarder ça dès que possible.
Est-ce que tu as des exemples précis de No qui ne se barrrent pas dans "Mancoliste".
Merci
bonsoir Grand Chaman je vous remerci de votre reponse;
j'ai essaye avec plusieurs n° mais je ne me rappel plus lequel
Au debut tout ce passé bien ,mais maintenant chaque n°que je veux trie le tableau (echange ce plante )
j'ai peut etre du faire une erreur en rajoutant les codes
je vous remercie
manuel
Bonjour Manu,
Non, tu n'as pas fait d'erreur.
Le problème est que la macro pour trier avait été fait dans un classeur qui n'avait pas tous les onglets que tu as dans le fichier maintenant.
Il faut don corriger la macro qui fait le Tri pour ne pas effacer dans toutes les feuilles.
Voici le bout de code que tu dois changer dans la macro "TrierCotes" qui se trouve dans le Module1. Remplacer le bloc de lignes qui commence par 'trier et effacer... par ceci :
'trier et effacer les doublons dans chaque onglets
For i = 1 To ThisWorkbook.Sheets.Count
If (Sheets(i).Name = "0 a 2000") Or (Sheets(i).Name = "2001 A 3000") Or _
(Sheets(i).Name = "3001 A 4000") Or (Sheets(i).Name = "4001 A 5000") Then
Call EffacerDoublons(Sheets(i))
End If
Next iça devrait régler le problème.
A+
Bonsoir Grand Chaman je viens de copier le code a l'emplacement de l'autre cela fonctionne,mais les chiffres dans (echange manu) ne se barre pas dans la (mancoliste) exemple /322/390/ ainsi que les autres .
merci manuel
Bonsoir Manu,
Je ne comprends pas...? j'ai essayé 322 et 390 et les numéros se sont barrés dans Mancoliste.
Je t'envoie la dernière version du fichier.
Note: juste pour être sûr... dans la colonne I de Echange, il faut écrire 322 ou 390 (sans les /)
Bonjour Grand Chaman ,je vous remercie ,tout est parfait (je noté bien le n° sans le /)
Maintenant tout fonctionne je ne sais pas pourquoi.
vous avez fait un excellent travail .
merci encore
manuel