IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier valeur dans un autre classeur excel en fonction de valeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Par défaut Modifier valeur dans un autre classeur excel en fonction de valeur
    Bonjour,

    je vous explique mon problème,
    je vais mettre à jour tous les mois des fiches recettes.
    Toutes les recherches se réalisent grâce à des recherches V dans la base de données grâce au code produits. Dès qu'il y a une modification cela change dans les recettes, pas de problème.

    Cependant il arrive que ce soit mon code qui change et là ... c'est le drame, les fiches recettes devienne obsolètes.
    Dans le fichier Word = l'arborescence visuel des fichiers.

    Dans un dossier nous avons la BDD + un fichier excel pour chaque famille de produit (environ 20)

    dans les fichiers Excel "famille" nous avons plusieurs recettes de produits.

    Dans le fichier "Achat",
    j'ai répertorié la liste des ingrédients pour chaque recette dans chaque famille de produit
    en A = le nom des classeurs
    en B = le nom des onglets
    en C = les codes produits

    De plus grâce à deux textbox on a
    en I2 : l'ancien code produits
    en J2 : le nouveau code

    Mon souhait serait que lorsqu'il y a un changement de code, j'aimerais que celui ce change automatiquement grâce à un bouton dans toutes les recettes où l'on retrouve le code.

    Le code se situant toujours dans la colonne A ou H (exemple dans le classeur Famille3)

    Exemple : Si on change le code 5 en 95
    J'aimerais que ma macro va dans
    - Mon classeur 'Famille1' dans l'onglet recette 4 et change tous les 5 en 95
    idem pour
    - Classeur "Famille2" dans les onglet recette 6,7,8,10
    -Classeur "Famille3" dans les onglets recette 11,12,13,14

    Si quelqu'un pourrait m'aider ca pourrait être super

    Mercii
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    au départ je suis qu'un autodidacte et cette solution certain qualifiée de bricolage
    à tester sur une copie de ton fichier original
    IMPORTANT : fermez tous les classeurs à modifier avant le lancement de code ... n'est ouvert que le classeur achat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub MiseAjourCodeProduit()
    Dim wkA As Workbook, wkB As Workbook
    Dim F As Worksheet
    Dim chemin As String, fichier As String
    Dim j As Long
    Dim w As Worksheet
    Dim coll As Range
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set wkA = ThisWorkbook
    chemin = "C:\Users\DELL\Desktop\"
    Dim PlageDeRecherche  As Range
    Set F = Sheets("BDD de recette")
    Set PlageDeRecherche = F.Range("C2:C" & F.Range("C" & Rows.Count).End(xlUp).Row)
    For Each C In PlageDeRecherche
    If C = F.Range("I1").Value Then
    fichier = F.Cells(C.Row, 1).Value
    Onglet = F.Cells(C.Row, 2).Value
    Workbooks.Open chemin & fichier
    Set wkB = ActiveWorkbook
    For Each w In wkB.Worksheets
    If w.Name = F.Cells(C.Row, 2).Value Then
    w.Columns(1).Replace What:=F.Range("I1").Value, Replacement:=F.Range("J1").Value, LookAt:=xlPart
    End If
    Next w
    wkB.Close True
    End If
    Next C
    Set wkA = Nothing
    Set wkB = Nothing
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    End Sub
    ne modifier que la colonne A ...tu peux ajouter la colonne H
    ça suppose que tous les fichiers sont sous un meme répertoire ... dans l'exemple c'est sur mon bureau
    faire tes test et on peux peut etre améliorer la solution
    Bonne Continuation

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/02/2020, 10h34
  2. Réponses: 5
    Dernier message: 31/01/2020, 11h44
  3. [XL-2016] formulaire remplissant une base dans un autre classeur excel
    Par rolando06 dans le forum Excel
    Réponses: 2
    Dernier message: 11/05/2019, 14h02
  4. Copier un champs de cellules dans un autre classeur Excel
    Par sylvain5923 dans le forum VB.NET
    Réponses: 0
    Dernier message: 06/01/2012, 14h19
  5. Créer du code vba excel réutilisable dans d'autres classeurs excel
    Par nicoMU dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2008, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo