Coder le remplacer dans VBA
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je suis débutante en création de macro et j'ai un petit soucis.
Je souhaite remplacer dans un recherchev le table matrice ainsi que le numéro index de colonne
ex:
=RECHERCHEV(I1;[Classeur1]Feuil1!$B:$G;4;0)
à remplacer par
=RECHERCHEV(I1;[Classeur2]Feuil1!$A:$D;3;0)
C'est une manipulation qui se passe très bien en faisant :
ctrl + H et je remplace " [Classeur1]Feuil1!$B:$G;4 " par " [Classeur2]Feuil1!$A:$D;3 " dans les formules.
Par contre c'est une manip que je dois faire tous les jours quasiment sur plusieurs colonne de trois feuilles différents avec des tables matrices qui varient à chaque fois entre les feuilles mais qui sont toujours les mêmes d'une mise à jour à l'autre.
Merci d'avance
je suis débutante en création de macro et j'ai un petit soucis.
Je souhaite remplacer dans un recherchev le table matrice ainsi que le numéro index de colonne
ex:
=RECHERCHEV(I1;[Classeur1]Feuil1!$B:$G;4;0)
à remplacer par
=RECHERCHEV(I1;[Classeur2]Feuil1!$A:$D;3;0)
C'est une manipulation qui se passe très bien en faisant :
ctrl + H et je remplace " [Classeur1]Feuil1!$B:$G;4 " par " [Classeur2]Feuil1!$A:$D;3 " dans les formules.
Par contre c'est une manip que je dois faire tous les jours quasiment sur plusieurs colonne de trois feuilles différents avec des tables matrices qui varient à chaque fois entre les feuilles mais qui sont toujours les mêmes d'une mise à jour à l'autre.
Merci d'avance
A voir également:
- Coder le remplacer dans VBA
- Remplacer disque dur par ssd - Guide
- Remplacer dans word - Guide
- Le code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Application pour apprendre à coder - Guide
4 réponses
Bonjour,
Ce n'est pas très clair, on dirait que vous récupérez des données d'un autre classeur, pouvez-vous donner plus détails ?
Ce n'est pas très clair, on dirait que vous récupérez des données d'un autre classeur, pouvez-vous donner plus détails ?
Bonjour,
Merci, mais cela n'explique pas ceci : Par contre c'est une manip que je dois faire tous les jours quasiment sur plusieurs colonne de trois feuilles différents avec des tables matrices qui varient à chaque fois entre les feuilles mais qui sont toujours les mêmes d'une mise à jour à l'autre.
Pourquoi ne pas copier directement la feuille du classeur 2 dans une nouvelle feuille du classeur 1 et ainsi votre formule fait référence à cette dernière et plus de modification ... !
Merci, mais cela n'explique pas ceci : Par contre c'est une manip que je dois faire tous les jours quasiment sur plusieurs colonne de trois feuilles différents avec des tables matrices qui varient à chaque fois entre les feuilles mais qui sont toujours les mêmes d'une mise à jour à l'autre.
Pourquoi ne pas copier directement la feuille du classeur 2 dans une nouvelle feuille du classeur 1 et ainsi votre formule fait référence à cette dernière et plus de modification ... !
Bonjour,
Mes bases de données sont des tables qui évoluent et se mettent à jour à partir de requètes (les requètes peuvent être journalières ou hebdomadaires).
Copier ma base de données composants (mon classeur 2) dans ma base de données articles produits finis (classeur 1) ne résoudra pas mon problème car lors de la mise à jour de la base, il faudra que je reprenne toutes les formules (ce que je fais actuellement à la main en utilisant le remplacer).
Ma formule de recherche ne se trouve pas dans une seule colonne, elle se trouve dans plusieurs colonnes différentes de ma page de calcul (environ 500 à 600 cellules).
Le fait d'avoir plusieurs classeurs ne me pose pas trop de problème, il s'agit plutôt de modifier ma formule de recherchev.
Elle sera déjà paramétrée une fois et je souhaite répliquer mon onglet d'origine (avec la première formule) trois fois en modifiant uniquement la table matrice et le numéro d'index de colonne en fonction de la base avec laquelle je souhaite alimenter mon onglet. Tout ça à l'aide d'une macro si c'est possible.
Mes bases de données sont des tables qui évoluent et se mettent à jour à partir de requètes (les requètes peuvent être journalières ou hebdomadaires).
Copier ma base de données composants (mon classeur 2) dans ma base de données articles produits finis (classeur 1) ne résoudra pas mon problème car lors de la mise à jour de la base, il faudra que je reprenne toutes les formules (ce que je fais actuellement à la main en utilisant le remplacer).
Ma formule de recherche ne se trouve pas dans une seule colonne, elle se trouve dans plusieurs colonnes différentes de ma page de calcul (environ 500 à 600 cellules).
Le fait d'avoir plusieurs classeurs ne me pose pas trop de problème, il s'agit plutôt de modifier ma formule de recherchev.
Elle sera déjà paramétrée une fois et je souhaite répliquer mon onglet d'origine (avec la première formule) trois fois en modifiant uniquement la table matrice et le numéro d'index de colonne en fonction de la base avec laquelle je souhaite alimenter mon onglet. Tout ça à l'aide d'une macro si c'est possible.
Bonjour,
Eh bien c'est encore moins compréhensible et impossible de comprendre la structure de vos classeurs.
Je pense qu'il serait mieux d'avoir un exemple concret.
Eh bien c'est encore moins compréhensible et impossible de comprendre la structure de vos classeurs.
Je pense qu'il serait mieux d'avoir un exemple concret.
Bonjour,
mon code vba ressemblait à ça:
Cells.Replace What:="'[Classeur1]Feuil1!$B:$G;4", Replacement:= _
"'[Classeur2]Feuil1!$A:$D;3", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
et le problème était que dans Excel, le séparateur d'argument est ; (point-virgule)
et dans VBA, le séparateur d'argument devient , (virgule)
Cells.Replace What:="'[Classeur1]Feuil1!$B:$G,4", Replacement:= _
"'[Classeur2]Feuil1!$A:$D,3", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
Voilà
Merci
mon code vba ressemblait à ça:
Cells.Replace What:="'[Classeur1]Feuil1!$B:$G;4", Replacement:= _
"'[Classeur2]Feuil1!$A:$D;3", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
et le problème était que dans Excel, le séparateur d'argument est ; (point-virgule)
et dans VBA, le séparateur d'argument devient , (virgule)
Cells.Replace What:="'[Classeur1]Feuil1!$B:$G,4", Replacement:= _
"'[Classeur2]Feuil1!$A:$D,3", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
Voilà
Merci
oui je récupère les données d'une base article.
J'ai un premier classeur où j'ai une présentation avec une base articles produits finis et je veux réutiliser la même présentation mais en la remplissant avec la base articles composants.
Donc mon classeur 1 devient mon classeur 2, je peux aussi avoir un changement de feuil1 vers feuil2 ou 3 et que la base ne soit plus les même colonne comme dans mon exemple : B:G devient A:D.
Aly