Mise à jour de valeur avec un tableau
Résolu
Mistral_13200
Messages postés
636
Date d'inscription
Statut
Membre
Dernière intervention
-
Mistral_13200 Messages postés 636 Date d'inscription Statut Membre Dernière intervention -
Mistral_13200 Messages postés 636 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Dans un classeur de 40 feuilles, j'ai besoin de mettre à jour certaines valeurs de façon régulière. A chaque fois j'ai quatre cellules par feuille à modifier. Pour une feuille ces cellules sont toujours les mêmes mais ne se trouvent pas forcément au même endroit d'une feuille à l'autre.
Manuellement c'est un travail long et fastidieux à chaque fois où le risque d'erreur n'est pas négligeable.
J'ai pensé utiliser une macro qui utiliserait un tableau qui lui contiendrait toutes les valeurs et qui pourrait avoir la forme suivante :
Colonne A le nom de la feuille
Colonne B le non de la 1er cellule
Colonne C la valeur de la 1ere cellule
Colonne B le non de la 2iem cellule
Colonne C la valeur de la 2iem cellule
Colonne B le non de la 3iem cellule
Colonne C la valeur de la 3iem cellule
Colonne B le non de la 4iem cellule
Colonne C la valeur de la 4iem cellule
Mon souci c'est que je n'ai aucune idée sur la manière d'aborder et de réaliser « la chose ».
Pouvez-vous m'aider.
D'avance merci.
Mistral
Dans un classeur de 40 feuilles, j'ai besoin de mettre à jour certaines valeurs de façon régulière. A chaque fois j'ai quatre cellules par feuille à modifier. Pour une feuille ces cellules sont toujours les mêmes mais ne se trouvent pas forcément au même endroit d'une feuille à l'autre.
Manuellement c'est un travail long et fastidieux à chaque fois où le risque d'erreur n'est pas négligeable.
J'ai pensé utiliser une macro qui utiliserait un tableau qui lui contiendrait toutes les valeurs et qui pourrait avoir la forme suivante :
Colonne A le nom de la feuille
Colonne B le non de la 1er cellule
Colonne C la valeur de la 1ere cellule
Colonne B le non de la 2iem cellule
Colonne C la valeur de la 2iem cellule
Colonne B le non de la 3iem cellule
Colonne C la valeur de la 3iem cellule
Colonne B le non de la 4iem cellule
Colonne C la valeur de la 4iem cellule
Mon souci c'est que je n'ai aucune idée sur la manière d'aborder et de réaliser « la chose ».
Pouvez-vous m'aider.
D'avance merci.
Mistral
A voir également:
- Mise à jour de valeur avec un tableau
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Tableau word - Guide
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Trier un tableau excel - Guide
10 réponses
Bonjour,
Et pourquoi pas tout simplement dans tes feuilles mettre :
='ta feuille de parametres'!B1
='ta feuille de parametres'!C1
...
et ce pour les 4 cellules.
Tu peux aussi nommer toutes ces cellules de paramètre en bloc avec 'créer nom', pour peu qu'il y ait des titres de colonne et de ligne, et :
=nomLigne nomColonne
te ramène le paramètre à l'intersection.
eric
Et pourquoi pas tout simplement dans tes feuilles mettre :
='ta feuille de parametres'!B1
='ta feuille de parametres'!C1
...
et ce pour les 4 cellules.
Tu peux aussi nommer toutes ces cellules de paramètre en bloc avec 'créer nom', pour peu qu'il y ait des titres de colonne et de ligne, et :
=nomLigne nomColonne
te ramène le paramètre à l'intersection.
eric
Bonjour Eric,
Pourquoi pas effectivement ...
Mais il me faut le faire pour les 40 feuilles alors que se serait beaucoup plus rpaide et plus sûr avec un tableau et des boucles imbriquées.
Je vais attendre pour voir s'il y a d'autres solutions.
En tout cas merci pour ta réponse.
Cordialement
Mistral
Pourquoi pas effectivement ...
Mais il me faut le faire pour les 40 feuilles alors que se serait beaucoup plus rpaide et plus sûr avec un tableau et des boucles imbriquées.
Je vais attendre pour voir s'il y a d'autres solutions.
En tout cas merci pour ta réponse.
Cordialement
Mistral
Re,
à mettre dans la feuille des paramètres :
Mettre le nom de feuille sur toutes les lignes, ex :
eric
à mettre dans la feuille des paramètres :
Sub maj() Dim lig As Long For lig = 2 To [A65536].End(xlUp).Row Worksheets(Cells(lig, 1).Value).Range(Cells(lig, 2).Value) = Cells(lig, 3).Value Next lig End Sub
Mettre le nom de feuille sur toutes les lignes, ex :
Feuille Cellule Valeur Feuil2 A1 1 Feuil2 A2 2 Feuil2 A3 3 Feuil3 E7 4 Feuil3 E8 5 Feuil3 E9 6
eric
Je viens de faire un rapide essais et celà semble fonctionner. J'ai créé un tableau selon ton modèle et lancé la macro depuis cette feuille et ça fonctionne, mais est-il possible de nommer ce tableau pour lancer la MAJ depuis n'importe quelle feuille du classeur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans un module :
et comment faire si les feuilles sont nommées?
Ben tu mets son nom en colonne A, j'ai mis Feuil2 mais ça peut être toto428
eric
Sub maj() Dim lig As Long, sh As Worksheet Set sh = Worksheets("Param") For lig = 2 To sh.[A65536].End(xlUp).Row Worksheets(sh.Cells(lig, 1).Value).Range(sh.Cells(lig, 2).Value) = sh.Cells(lig, 3).Value Next lig End Sub
et comment faire si les feuilles sont nommées?
Ben tu mets son nom en colonne A, j'ai mis Feuil2 mais ça peut être toto428
eric
Ok j'ai bien nommé une feuille "param" et la macro fonctionne depuis n'importe quelle feuille.
J'ai déjà une feuille "param" dans laquelle j'ai tout un tas de données organisées pour la plus part en ensemble de cellules que j'ai baptisée d'un nom et je voudrais qu'il en soit de même pour mon tableau de MAJ que je pourrais appeller Tab_MAJ par exemple.
J'ai déjà une feuille "param" dans laquelle j'ai tout un tas de données organisées pour la plus part en ensemble de cellules que j'ai baptisée d'un nom et je voudrais qu'il en soit de même pour mon tableau de MAJ que je pourrais appeller Tab_MAJ par exemple.
Je crois que je suis en train de me noyer ...
Si sur la feuille "Param" je crée mon tableau de mise à jour, qu'il comporte 10 lignes et 3 colonnes et que j'appelle ce tableau Tab_MAJ. Comment je fais pour aller chercher le nom de la première feuille qui se trouve en haut à gauche de la zone appelée Tab_MAJ?
Désolé si je te paraît lourdeau.
PS /
Ce tableau ne sera pas à partir de A1 car j'ai déjà d'autre élément que je ne peux déplacer.
Set sh = Worksheets("Param"),c'est bien pour aller chercher les valeurs dans la feuille "Param".
For lig = 1 To sh.[A65536].End(xlUp).Rowc'est bien pour commancer la lecture à la cellule A1.
Worksheets(sh.Cells(lig, 1).Value).Range(sh.Cells(lig, 2).Value) = sh.Cells(lig, 3).Valuec'est bien là qu'on sélectionne la feuille (lig,1) qu'on sélectionne la cellule (Lig,2) pour y mettre la valeur (Lig,3).
Si sur la feuille "Param" je crée mon tableau de mise à jour, qu'il comporte 10 lignes et 3 colonnes et que j'appelle ce tableau Tab_MAJ. Comment je fais pour aller chercher le nom de la première feuille qui se trouve en haut à gauche de la zone appelée Tab_MAJ?
Désolé si je te paraît lourdeau.
PS /
Ce tableau ne sera pas à partir de A1 car j'ai déjà d'autre élément que je ne peux déplacer.
Bon on va faire autrement alors...
Nomme la plage des noms des feuilles (1 colonne, sans le titre) 'ListeFeuilles' par exemple et :
eric
Nomme la plage des noms des feuilles (1 colonne, sans le titre) 'ListeFeuilles' par exemple et :
Sub maj() Dim c As Range For Each c In [ListeFeuilles] Worksheets(c.Value).Range(c.Offset(0, 1).Value) = c.Offset(0, 2).Value Next c End Sub
eric