RECHERCHE CODE VBA POUR TROUVER DONNEES ET LES METTRE A JOUR AUTOMATIQUEMENT[RÉSOLU PAR MR PIERRE ].

Dudesson

XLDnaute Junior
Bonjour le forum,
Bonjour à tous,
Je cherche un code VBA à mettre sur la feuille 2 pour y importer des données de la feuille 1 en fonction de lemplacement designé sur feuille 3.

Pour imager: si le code en colonne A2:A500 de la feuille3 existe en colonne B2:B100 de la feuille1, alors le nom ecrit en colonne C2:C100 de la feuille1 est importé dans une cellule A2:J20 de la feuille2 en foncton de la place désignée en colonne B2:B500 de la feuille3.

Les donnés en feuille 1 étant vouées à être modifiées régulièrement le code VBA devra mettre à jour automatiquement les noms sur la feuille2 en supprimant les noms dans les cellules pour lesquelles le code en colonne A de la feuille3 n'est plus repris en colonne B de la feuille1 et en ajoutant les noms dans les cellules feuille 2 pour les nouveaux codes ajoutés en feuille1.
Merci d'avance pour votre aide.
Dudesson.
 

Pièces jointes

  • Classeur1.xlsx
    16 KB · Affichages: 31

Dudesson

XLDnaute Junior
Re
MR PIERRE, je reviens vers vous car j'ai un peu de mal pour adapter le code VBA dans mon fichier à partir de l'exemple.
J'ai donc mis les codes de la feuille3 dans les mêmes positions que dans mon fichier.
Donc codes colonne E =places en colonne L et ainsi de suite.
Un dernier coup de main s'il vous plaît.
Merci d'avance.
Dudesson.
 

Pièces jointes

  • Classeur1.xlsm
    22.3 KB · Affichages: 33

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour Dudesson, pierrejean ;),

Pour le FUN, un essai juste avec une formule.
  • sur la feuille "Feuil2", saisir la formule matricielle ci-dessous dans la cellule A2. C'est une formule matricielle à valider par la combinaison des trois touche Ctrl+Maj+Entrée au lieu de la seule touche Entrée
  • copier la cellule A2 pour la recopier (en formule) sur la plage B2:J2
  • copier la plage A2:J2 pour la recopier (en formule) sur la plage A3:J20
Code:
=SIERREUR(RECHERCHEV(PETITE.VALEUR(SI(Feuil3!$L$2:$P$20=SUBSTITUE(CELLULE("address";A2);"$";""); DECALER(Feuil3!$L$2:$P$20;0;-7);"");1);Feuil1!$B$2:$C$9999;2;0);"")
 

Pièces jointes

  • Dudesson- recherche par position- v1.xlsx
    21.1 KB · Affichages: 31
Dernière édition:

Dudesson

XLDnaute Junior
Merci pour cette contribution. Ça fonctionne !
Jespère une solution en VBA car dans mon fichier, un autre code VBA de la feuille2 ajoute des commentaires aux cellules non vides en fonction d'autres données sur la feuille1.
Encore merci pour vos réactions.
Amicalement.
Dudesson.
 
Dernière édition:

Si...

XLDnaute Barbatruc
Bonjour

VBA ? A tester avec des plages nommées ...
Code:
Private Sub Worksheet_Activate()
  Dim E As Range, C As Range
  Application.ScreenUpdating = 0
  [A2:J20] = ""
  For Each C In Feuil1.[nom]
  Set E = [CODES].Find(C(1, 0))
  If Not E Is Nothing Then Range(E(1, 8)) = C
  Next
End Sub
 

Pièces jointes

  • Copie dans_.xlsm
    24.6 KB · Affichages: 31

Dudesson

XLDnaute Junior
Bonjour

VBA ? A tester avec des plages nommées ...
Code:
Private Sub Worksheet_Activate()
  Dim E As Range, C As Range
  Application.ScreenUpdating = 0
  [A2:J20] = ""
  For Each C In Feuil1.[nom]
  Set E = [CODES].Find(C(1, 0))
  If Not E Is Nothing Then Range(E(1, 8)) = C
  Next
End Sub
Bonsoir dites moi s'il vous plaît comment je modifie le code VBA pour que la colonne pour le code soit le colonne E de la feuille1 et non la colonne B.
Merci.
Amicalement
Dudesson.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir Dudesson,

Une version v2a qui permet de paramétrer où sont les différents tableaux des données sources. La v2a est aussi plus rapide.
Voir en tête de code, les différentes constantes à renseigner.
Dans le fichier (pour l'exemple), sur la feuille "Feuil1", la colonne des noms est en colonne C (à partir de C2) et la colonne des codes est la colonne E (à partir de E2).

edit : une version v2b qui met aussi à jour le tableau quand on active Feuil2.
 

Pièces jointes

  • Dudesson- recherche par position- v2a.xlsm
    29.8 KB · Affichages: 27
  • Dudesson- recherche par position- v2b.xlsm
    30.3 KB · Affichages: 26
Dernière édition:

Dudesson

XLDnaute Junior
Bonsoir Dudesson,

Une version v2a qui permet de paramétrer où sont les différents tableaux des données sources. La v2a est aussi plus rapide.
Voir en tête de code, les différentes constantes à renseigner.
Dans le fichier (pour l'exemple), sur la feuille "Feuil1", la colonne des noms est en colonne C (à partir de C2) et la colonne des codes est la colonne E (à partir de E2).

edit : une version v2b qui met aussi à jour le tableau quand on active Feuil2.
Bonjour.
Je viens d'ajouter un code VBA pour ajouter un commentaire sur la cellule active de la feuille2.
Ça fonctionnait ailleurs mais là j'ai un Bug sans doute à cause du code qui ajoute les noms. Pouvez-vous me le débloquer s'il vous plaît ?
Merci d'avance.
Amicalement.
Dudesson.
 

Pièces jointes

  • Copie de Dudesson- recherche par position- v2b.xlsm
    29.3 KB · Affichages: 23

Si...

XLDnaute Barbatruc
Re

Pourquoi utiliser la table de correspondance Code/ Place ?

Ce serait bien plus simple de ne saisir que la place* de chaque nom, comme dans la copie jointe !

*moins de saisies : moins de risques d'erreur, macro plus simple

Comme toujours, une bonne préparation est obligatoire pour éviter de multiples interventions !
 

Pièces jointes

  • Copie dans__.xlsm
    150.5 KB · Affichages: 24

Discussions similaires

Réponses
16
Affichages
981
Réponses
15
Affichages
665
Compte Supprimé 979
C