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 :

Remplacer valeur cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Clermont
    Inscrit en
    Décembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Clermont

    Informations forums :
    Inscription : Décembre 2018
    Messages : 1
    Par défaut Remplacer valeur cellule
    Bonjour,

    Je souhaiterais sur un fichier excel remplacer des valeurs présentes sur plusieurs onglets avec de nouvelles valeurs. Je dispose d'une table de modification. Je m'explique dans mon suivi budgétaire (différents onglets en fonction des rubriques) je dois modifier les comptes comptables car ceci ont changés. Dans un autre fichier j'ai deux colonnes, l'une avec les anciens comptes encore présents dans le suivi budgétaire et une autre colonne avec les nouveaux. Je dois remplacer sur tous les onglets les anciens comptes par les nouveaux. Je ne peux pas utiliser la raccourci Ctrl+H car j'ai plus de 300 comptes.. il faudrait donc que je créé une maccro pour automatiser la modification mais je n'y arrive pas.

    Merci d'avance pour vos solutions.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu fais une boucle For Each sur ta liste de comptes.
    Pour chaque compte, tu fais une boucle For Each sur la collection Worksheets pour chercher dans tous les onglets (attention à shunter l'onglet où se trouve la liste de correspondance).
    Pour chaque compte et chaque onglets, tu appliques la méthode Replace à UsedRange (les cellules non vides de l'onglet) pour remplacer le numéro correspondant.
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

  3. #3
    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
    à tester sur une copie de ton classeur , j'assume aucune responsabilité en cas de perte de données
    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
    Sub remplacerNvCompte()
    Application.ScreenUpdating = False 'juste pour arrêter affichage écran et améliorer le temps d'exécution du macro
    With Sheets("Feuil1") ' Feuille qui contient le tableau de correspondance en colonne A les anciens comptes et en colonne B les nouveaux comptes comptables
    tablo = .Range("A2", "B" & .Range("B" & .Rows.Count).End(xlUp).Row)
    End With
     
    'Supposons que les anciens comptes comptables se trouvent en colonne A de toutes les autres feuilles à partir de A2
    Dim derligne As Long
    Dim j As Long
    Dim K As Integer
    Dim z As Integer
     
    j = 2 'Les données à modifier à partir de A2
     
     For z = 1 To Worksheets.Count 'Parcourir toutes les onglets
            If Worksheets(z).Name <> "Feuil1" Then 'si le nom de l'onglet est différent de feuil1 qui va pas subir la modification et qui contient la table de correspondance
                j = Worksheets(z).Range("A" & Rows.Count).End(xlUp).Row 'chercher la dernière ligne non vide de la colonne A de chaque feuille
                For i = LBound(tablo, 1) To UBound(tablo, 1) 'chercher dans le tableau de correspondance déclaré ci haut
                     For K = 2 To j
                       If Worksheets(z).Cells(K, 1) = tablo(i, 1) Then Worksheets(z).Cells(K, 1) = tablo(i, 2)
                     Next K
                Next i
                End If
      Next z
    MsgBox ("Modification effectuée avec succès .... ")
    Application.ScreenUpdating = True
    End Sub

Discussions similaires

  1. [XL-2013] Remplacer une cellule vide par une valeur
    Par Tiagra dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/09/2014, 21h45
  2. Remplacer une cellule de grid par une autre valeur
    Par jerada dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 24/03/2014, 13h07
  3. Remplacement des cellules par la valeur précédente
    Par gwirionez dans le forum SAS Base
    Réponses: 2
    Dernier message: 27/07/2011, 09h51
  4. Remplacer des cellules par leurs valeurs
    Par benoitbs dans le forum Excel
    Réponses: 1
    Dernier message: 28/01/2008, 12h21
  5. Remplacer par valeur cellule
    Par ber243 dans le forum Excel
    Réponses: 9
    Dernier message: 14/10/2007, 23h00

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