Bonjour a tous,
Avant tout, je m'excuse si je n'utilise pas les bons mots. Aussi, je débute en macro.
J'espère que mes explications seront claires
Je suis en train de créer un outil Excel de calcul de valeur calorique.
J'ai une feuille "Caloric value", "data", "Europe" et "USA". Data, Europ et USA seront au final cachés aux utilisateurs.
Sur Caloric value, il ya un tableau a compléter pour ajouter un nouvel ingrédient dans la base de données. Une première ligne (plage de cellule nommée europe) pour ajouter des ingrédients dans la base de données Europe et une seconde ligne (plage de cellule nommée usa) pour ajouter des ingrédients dans la base de données USA.
Les bases de données de valeur calorique sont respectivement contenues dans les feuilles Europe et USA.
Sur les feuilles Europe et USA, les bases de données sont contenues dans des tableaux (j'ai défini un tableau en faisant Insertion/tableau).
Voilà ce que j'essaie de faire :
Lorsque quelqu'un rentre des valeurs dans le tableau dans Caloric value, je voudrais créer une macro permettant :
- Copier les valeurs ajoutées s’il y en a dans la ligne Europe et/ou USA
- Ajouter une ligne dans les tableaux des bases de données Europe et/ou USA si il y a quelque chose qui a été complété dans la ligne Europe et/ou USA
- Coller les valeurs dans la base de données Europe et/ou USA s'il y a des données complétées dans les lignes Europe et/ou USA
Comme je vous le disais, je débute donc j'y vais a tâtons et je suis en train de construire mon code
J'ai trouvé comment copier du texte et coller en collage spécial les valeurs copiées (sans tenir compte de la mise en forme).
Je pense que ça passerait aussi comme ça, mais j'ai un doute
Par contre je n'arrive pas trouvé comment coder la condition de copie si la plage de cellule europe et/ou usa est complété. ça peut etre aussi conditionné a fait de completer juste une cellule de la,luigne europe ou usa
Ici, j'ai mis A9 mais en fait le copier doit se faire sur la ligne qu'on va ajouter dans les bases de données (j'explique ci dessous, c'est la que je bloque entre autre).
J'ai trouvé comment ajouter une ligne a mon tableau sur la base de donnée Europe et USA.
Ce que je n'arrive pas à coder (j'ai cherché pas mal sur le net, sans succès), c'est faire le collage spécifiquement sur la dernière ligne du tableau dans la base de données Europe ou USA (celle qu'on vient d'ajouter).
Je vous remercie par avance pour votre aide. Si besoin, je peux vous uploader mon fichier.
Bastien
Avant tout, je m'excuse si je n'utilise pas les bons mots. Aussi, je débute en macro.
J'espère que mes explications seront claires
Je suis en train de créer un outil Excel de calcul de valeur calorique.
J'ai une feuille "Caloric value", "data", "Europe" et "USA". Data, Europ et USA seront au final cachés aux utilisateurs.
Sur Caloric value, il ya un tableau a compléter pour ajouter un nouvel ingrédient dans la base de données. Une première ligne (plage de cellule nommée europe) pour ajouter des ingrédients dans la base de données Europe et une seconde ligne (plage de cellule nommée usa) pour ajouter des ingrédients dans la base de données USA.
Les bases de données de valeur calorique sont respectivement contenues dans les feuilles Europe et USA.
Sur les feuilles Europe et USA, les bases de données sont contenues dans des tableaux (j'ai défini un tableau en faisant Insertion/tableau).
Voilà ce que j'essaie de faire :
Lorsque quelqu'un rentre des valeurs dans le tableau dans Caloric value, je voudrais créer une macro permettant :
- Copier les valeurs ajoutées s’il y en a dans la ligne Europe et/ou USA
- Ajouter une ligne dans les tableaux des bases de données Europe et/ou USA si il y a quelque chose qui a été complété dans la ligne Europe et/ou USA
- Coller les valeurs dans la base de données Europe et/ou USA s'il y a des données complétées dans les lignes Europe et/ou USA
Comme je vous le disais, je débute donc j'y vais a tâtons et je suis en train de construire mon code
J'ai trouvé comment copier du texte et coller en collage spécial les valeurs copiées (sans tenir compte de la mise en forme).
Code:
Sheets("Caloric Value").Range("C9:T9").Copy
Sheets("Caloric Value").Range("C10:T10").Copy
Code:
Sheets("Caloric Value").Range("europe").Copy
Sheets("Caloric Value").Range("usa").Copy
Code:
Sheets("Europe").Range("A19").PasteSpecial Paste:=xlPasteValues
Sheets("USA").Range("A19").PasteSpecial Paste:=xlPasteValues
J'ai trouvé comment ajouter une ligne a mon tableau sur la base de donnée Europe et USA.
VB:
Sheets("Europe").ListObjects("Tableau1").ListRows.Add
Sheets("USA").ListObjects("Tableau13").ListRows.Add
Ce que je n'arrive pas à coder (j'ai cherché pas mal sur le net, sans succès), c'est faire le collage spécifiquement sur la dernière ligne du tableau dans la base de données Europe ou USA (celle qu'on vient d'ajouter).
Je vous remercie par avance pour votre aide. Si besoin, je peux vous uploader mon fichier.
Bastien