Automatisation références

Bonjour a tous,

Voici mon problème:

j'ai 5 photos dans ma feuille catalogue, quand j'appuie sur l'une des photo cela me met la référence de la photo ainsi que sa quantité dans la feuille général, sauf que les références s'écrivent dans une cellule prédéfinis que j'ai mis moi-même dans le code vba : - ( Worksheets("general").Range("B2").Value = Worksheets("catalogue").Range("B3").Value ) le problème est que je ne veux pas que les référence s'écrivent dans une ligne prédéfinis mais quelles restent dans la même colonne. Par exemple je veux que quand je clique sur la 5eme photo elle ne se mette pas en B6 ( cellule prédéfinis dans mon module) mais quelle se mette dans la première ligne de la colonne B si elle est disponible et ainsi de suite avec les autres photos. J'espère que j'ai était assez précis dans ma problématique sinon n'hésité a me le faire savoir j'essaierais de reformuler ma problématique. Merci. Cordialement.

Bonjour,

Donc ton problème c'est d'avoir un numéro de ligne variable qui prend en compte celles déjà remplies, une façon simple d'avoir ce numéro de ligne c'est d'utiliser:

ligne = range("b" & rows.count).End(xlUp).Row + 1

Après tu pourras utiliser ce numéro de ligne dans ton Range pour écrire dans ta feuille

Excusez moi mais je n'est pas très bien compris votre code

Pas de problème, je vais l'expliquer,

le but de cette ligne de code est de trouver le numéro de la première ligne vide dans la colonne B, pour faire ça je fais appelle à la cellule de la dernière ligne de la colonne B, à partir de cette cellule je pars vers le haut avec End(xlUp), équivalent du raccourci Ctrl+flèche vers le haut, la sélection s'arrête à la première cellule contenant quelque chose, je demande son numéro de ligne avec Row, et je l'incrémente de 1 pour obtenir celui de la ligne suivante, qui sera vide à coup sûr. J'utilise "b" & rows.count pour générer "b1048576" si on utilise le code dans un classeur d'une version Excel récente, pour éviter d'avoir à savoir quelle est la dernière ligne par coeur j'utilise rows.count qui me renvoie le nombre de ligne dans la feuille active.

Est-ce que je suis plus clair de cette façon?

Bonjour theovgnl, Ausecour,

un essai qui permet de n'avoir qu'une seule macro pour toutes les images de la feuille catalogue:

à copier dans un module standard

Sub CopieCG()
Dim NS As String, LG As Long, LC As Long
' nom de l'image appellante
NS = Application.Caller

'N° ligne libre feuille générale
LG = Worksheets("general").Range("B" & Rows.Count).End(xlUp).Row + 1

'N° ligne en cours feuille catalogue
LC = Worksheets("catalogue").Shapes(NS).TopLeftCell.Row

'colonne B general = colonne B catalogue
Worksheets("general").Range("B" & LG).Value = Worksheets("catalogue").Cells(LC, 2).Value

'colonne J general = colonne D catalogue
Worksheets("general").Range("J" & LG).Value = Worksheets("catalogue").Cells(LC, 4).Value

'incrementé la quantité d'article
Worksheets("general").Range("D" & LG).Value = Worksheets("general").Range("D" & LG).Value + 1

End Sub

chaque image doit donc appeler cette macro.

Pas sûr d'avoir bien compris l'incrémentation de la colonne D en feuille "generale"

A+

Bonjour AlgoPlus, Ausecour

Merci de votre aide !j'ai pu réussir ce que je voulais faire grâce a vos aides, encore merci et une bonne journée.

Rechercher des sujets similaires à "automatisation references"