MAJ de référence composant

Bonjour à tous !

Novice, je sèche grave sur un problème. N'ayant pas les compétences pour y arriver, pouvez-vous m'aider ?

Complètement insoluble pour moi, je pense que pour les experts présents sur le forum ça ne présentera pas de difficulté.

Tout est expliqué dans mon fichier joint.

Je pense qu'une solution à base d'UserForm serait cool, car ce fichier sera utilisé par d'autres personnes que moi...

Attention, l'option d'Excel 'Rechercher' et 'Remplacer' ne convient pas, car je ne veux pas sélectionner les datas sur lesquels la modification portera !!!

D'avance un très très grand merci...

Amicalement

WEIDER.

16test.xlsm (95.85 Ko)
WEIDER a écrit :

Bonjour à tous !

Attention, l'option d'Excel 'Rechercher' et 'Remplacer' ne convient pas, car je ne veux pas sélectionner les datas sur lesquels la modification portera !!!

que veux-tu dire par "ne pas sélectionner", car cette option ne sélectionne rien

Bonjour JMD,

Lorsque tu fais une recherche tu dois bien indiquer une plage de données, une colonne ou une ligne, non ?

Dans mon cas, la liste de mes référence sera d'une certaine façon 'cachée' aux utilisateurs, en faite, elle sera simplement sur une colonne à l’extrême droite de ma feuille.

Du coup, les gens ne pourront pas aller la sélectionner pour y faire une recherche ! Je me trompe dans mon raisonnement ?

Si je me trompe peux tu s'il te plait m'expliquer comment faire et quoi cocher dans cette boite de dialogue 'Recherche' ?

Merci pour ton aide !

Weider.

re

essaye (sans sélectionner de plage précise et en restant sur la zone visible à gauche, tout le reste étant donc invisible si lointain)

clique "remplacer tout"

attention : il ne faut pas avoir sélectionné 2 cellules ou plus avant de lancer le remplacement

Il me semble bien avoir déjà fais ça, mais je retente.....


Bon... Je viens de tester à nouveau la chose...

Regardes ma pièce jointe, ça me change bien mes 3 cellules bleues en dessous, mais au total il me change 565 cellules en tout !!!!????

Du coup, à mon avis, il me trouve et me change plein d'autres cellules dans lesquelles il y le chiffre *90* !

capture

re

oui, il faut changer le texte entier de la réf et non juste une partie, ce qui élimine les remplacements dans des cellules non voulues, et surtout dans des réf non voulues

Ok, je pense avoir compris, tu veux dire qu'il faut que que soit inscrite une référence complète !

Dans ce cas, le risque est grand de faire une erreur, si peux que la personne inscrive que 2 ou 3 digits par erreur et valide....

re

alors essaye en sélectionnant toute la colonne (clic dans l'en-tête de la colonne)

et ça doit s'enregistrer en macro

finalement on fait une petite macro)

mais attention, certaines réf se ressemble et il est possible que remplacer 400 par 500 se fasse sur plus d'une réf !

Ok jmd, je vais tester tout ça.

Comme tu dis, je vais certainement faire une macro commande pour la sélection de ma colonne, histoire de ne pas aller la sélectionner manuellement, puis ensuite utiliser l'option 'Recherche et remplacer'.

Merci pour ton aide.

Excellent weekend 8)

WEIDER.

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim datas, derlig As Long, lig As Long
    Dim refAv As String, refAp As String, nbRempl As Long

    If Target.Address = "$K$6" Then
        refAv = [C5]: refAp = [K6]
        'If MsgBox("Remplacer référence " & refAv & " par " & refAp, vbQuestion + vbOKCancel) = vbCancel Then Exit Sub
        If refAv = "" Or refAp = "" Then Exit Sub
        derlig = Cells(Rows.Count, "X").End(xlUp).Row
        datas = [X1].Resize(derlig)
        For lig = 1 To derlig
            If datas(lig, 1) = refAv Then
                datas(lig, 1) = refAp
                nbRempl = nbRempl + 1
            End If
        Next lig
        If nbRempl = 0 Then
            MsgBox "Référence " & refAv & " non trouvée"
        Else
            If MsgBox("Remplacement de " & nbRempl & " références :" & vbLf & refAv & " par " & refAp, vbQuestion + vbYesNo, "Confirmation") = vbYes Then
                Application.EnableEvents = False
                [X1].Resize(derlig) = datas
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub

Tu pourrais comparer les longueurs de refAv et refAp pour prévenir certaines erreurs de saisies et mettre en l'air ta base.

Plus éventuellement mémoriser l'historique des modif avec date/heure, avant et après qui te permettrai de restaurer en cas de pépin

eric

edit 16:32 : ajout msgbox de confirmation

Bonjour Eriiic

Merci pour ta réponse !

Tu as bien senti le risque effectivement de rendre obsolète ma liste principale suite à une mauvaise manipe...

Sans parler que des liens vers un autre document seront fait via ces références (je ravale ma salive )

Bref, niveau VBA, je dois être au niveau CM1, donc ton code est à coller ou ? Sur un bouton à créer ? Ailleurs ?

Merci pour ton aide Eriiic

A coller dans le module de la feuille en remplacement de celui qui y est déjà.

Il se lance à la validation de K6 comme demandé.

Génial ! Merci mille fois !

Je viens de mettre ça en application, nickel !

Le coup de la confirmation dans la boite texte c'est... rassurant.

Pour (effectivement) garder un historique des changements des références.

Il faut absolument que je trouve le moyen que : la date de la modification + l'ancienne référence + la nouvelle référence, s'enregistre sur un autre onglet, automatiquement dans un tableau et à la suite, comme sur mon fichier en pièce jointe...

4testok.xlsm (110.77 Ko)

Weider.

Historisation faite, le plus récent en haut. Seules 500 dernières modif sont conservées, tu peux modifier.

J'ai ajouté une colonne 'Demande annulation le'.

Un double-clic dessus te remplit C5 et K6 en inversant RefAv et RefAp, tu n'as plus qu'à valider (ou pas) la nouvelle modif (code dans Traçabilité).

La date de demande d'annulation est mise dans tous les cas, l'effacer si tu n'as pas validé. Sinon elle n'a été effective que si tu trouves une modif même date-heure avec les ref inversées.

eric

9testok.xlsm (113.65 Ko)

Bonjour Eriiic !

Comment vas tu en ce samedi ensoleillé (enfin sur Orléans)

Je viens de voir ce que tu avais concocté concernant l'historique. C'est impeccable ! Un grand merci à toi

Ce fichier est quasi abouti et tel que je le souhaitais.

Une dernière petite chose malgré tout à laquelle j'aimerai bien parvenir...

En C5, en faite j'aurai souhaité que lorsque j'affiche ma liste déroulante, les référence apparaissent, MAIS en ordre croissant !? Car là elles sont prise dans l'ordre initiale de ma colonne 'X' !

De ce fait j'aurais 2 possibilité de choisir la référence voulue, soit en la tapant au clavier, soit en utilisant ma liste de choix et avec l'ascenseur de liste la sélectionner (facile car en ordre croisant) !

C'est possible à faire ça ?

Bon samedi à toi Eric

6testok.xlsm (112.64 Ko)

Bonjour,

Et bien pourquoi ne la tries-tu pas ?

D'ailleurs, comme on en parle, une BdD correcte doit avoir une ligne de titre pour pouvoir bénéficier de toutes les fonctionnalités d'excel.

Et je la mettrai dans une feuille à part (avec un coupé-collé tes formules s'ajusteront, adater les macros).

eric

Pour tout te dire, je trouve aussi que le cou de...'cacher' cette liste sur la droite est un peux olé olé

Pour le tri en ordre croissant...

Il faut que je vois comment je vais procéder, la constitution de cette liste générale est réalisée par rapport aux "Types" avant tout et faire un tri sur les références seules veut dire que tous les type seront mélanger ensuite

---> Mais pour mon exemple je vais malgré tout la trier et je verrais ensuite...

Donc, sur tes conseils, je vais la déplacer sur un onglet propre.

Pour les formule elles devraient suivre effectivement, espérons que pour les macros je puisse les modifier également...

Lorsque tu dis mettre ..."une ligne de titre".... c'est faire la même chose qu'en 'A9' à 'F9' (onglet Recherche et vivier) ?

Bon je me lance et je reviens te dire....

Lorsque tu dis mettre ..."une ligne de titre".... c'est faire la même chose qu'en 'A9' à 'F9' (onglet Recherche et vivier) ?

Oui c'est ça.

Après tu peux ajouter dessus un filtre automatique qui t'aidera lors des maj, des tris etc

Ok Eric, je vais faire ça et reviens vers toi plus tard

Bon samedi.

Amicalement

Weider.

Bonjour Eric !

Bon, depuis hier et pour des raison pratiques suite à tes conseils, je me suis très largement attardé à rassembler deux fichiers Excel pour n'en faire qu'un. Les deux fichiers séparément avaient leurs propre formules qui fonctionnaient.

Hors depuis que je les ai rassemblés, certains petits 'bugs' sont apparus...

Je joins mon fichier avec les détails notés dessus. J'ai commencé à regarder, mais certaines petites choses m'échappent...

Help me !

Pascal.

6global.zip (179.21 Ko)
Rechercher des sujets similaires à "maj reference composant"