Recherche et copie de cellule

Bonjour, j'ai un problème de syntaxe dans ce code

Sub OLRT501CRBIS()

Worksheets("SYNTHESE").Activate

Dim NS As String, LG As Long, LC As Long, lig As Long

' nom de l'image appellante

NS = Application.Caller

'N° ligne libre feuille MVT SITE

LG = Worksheets("SYNTHESE").Range("N" & Rows.Count).End(xlUp).Row + 1

'N° ligne en cours feuille catalogue

LC = Worksheets("0LRT501CRBIS").Shapes(NS).TopLeftCell.Row 'je ne sais pas ce que c'est

'colonne D MVT_SITE = colonne E SOMMAIRE

On Error GoTo pastrouvé

lig = Sheets("SYNTHESE").Columns(2).Find(Sheets("0LRT501CRBIS").Range("B2")).Row

With Worksheets("SYNTHESE")

.Range("N" & LG).Value = Worksheets("0LRT501CRBIS").Range(LC, 3).Value

.Range("O" & LG).Value = Sheets("0LRT501CRBIS").Range("D" & lig).Value

.Range("P" & LG).Value = Sheets("0LRT501CRBIS").Range("E" & lig).Value

.Range("Q" & LG).Value = Sheets("0LRT501CRBIS").Range("F" & lig).Value

.Range("R" & LG).Value = Sheets("0LRT501CRBIS").Range("G" & lig).Value

.Range("S" & LG).Value = Sheets("0LRT501CRBIS").Range("H" & lig).Value

.Range("T" & LG).Value = Sheets("0LRT501CRBIS").Range("I" & lig).Value

.Range("W" & LG).Value = Sheets("0LRT501CRBIS").Range("J" & lig).Value

End With

Exit Sub

pastrouvé:

MsgBox ("Je ne trouve pas cette équipement")

End Sub

mon but est d'inséré les valeurs de la feuille "0LRT501CRBIS" ou d'une autre dans la lignes qui correspond au "repère coffret" dans la feuille "SYNTHESE"

Bonjour,

ta macro est appuyé sur des shapes

 Dim NS As String, LC As Long
  ' nom de l'image appellante
 NS = Application.Caller
 LC = Worksheets("0LRT501CRBIS").Shapes(NS).TopLeftCell.Row 'je ne sais pas ce que c'est

où sont ces shapes ou images qui lancent ta macro ?

LC sera la ligne où se trouve cette "shape" (rectangle, carré, image ...)

si j'ai bien compris ce que sont les shapes, elles sont en cellule "B4" a partir de la feuille "0LRT501CRBIS" jusqu'à la dernière

okay

et il y aura un bouton pour chaque ligne ?

C'est bien ça

Dans ta macro,

 lig = Sheets("SYNTHESE").Columns(2).Find(Sheets("0LRT501CRBIS").Range("B2")).Row
 With Worksheets("SYNTHESE")
   .Range("N" & LG).Value = Worksheets("0LRT501CRBIS").Range(LC, 3).Value
   .Range("O" & LG).Value = Sheets("0LRT501CRBIS").Range("D" & lig).Value

tu détermines lig d'après la feuille SYNTHESE et tu l'appliques ensuite à la feuille 0LRT501CRBIS

tu devrais peut-être remplacer par LC

idem pour LG et lig ...

 lig = Sheets("SYNTHESE").Columns(2).Find(Sheets("0LRT501CRBIS").Range("B2")).Row
 With Worksheets("SYNTHESE")
   .Range("N" & lig).Value = Worksheets("0LRT501CRBIS").Range(LC, 3).Value
   .Range("O" & lig).Value = Sheets("0LRT501CRBIS").Range("D" & LC).Value
   .Range("P" & lig).Value = Sheets("0LRT501CRBIS").Range("E" & LC).Value
   .Range("Q" & lig).Value = Sheets("0LRT501CRBIS").Range("F" & LC).Value
   .Range("R" & lig).Value = Sheets("0LRT501CRBIS").Range("G" & LC).Value
   .Range("S" & lig).Value = Sheets("0LRT501CRBIS").Range("H" & LC).Value
   .Range("T" & lig).Value = Sheets("0LRT501CRBIS").Range("I" & LC).Value
   .Range("W" & lig).Value = Sheets("0LRT501CRBIS").Range("J" & LC).Value
 End With

pourquoi la colonne 2 ?

lig = Sheets("SYNTHESE").Columns(4).Find(Sheets("0LRT501CRBIS").Range("B2")).Row

En recopiant votre code il m'est apparu ce message "Erreur d'exécution '91': variable objet ou variable de bloc With non definie

==>

Sub OLRT501CRBIS()

 Worksheets("SYNTHESE").Activate
 Dim NS As String, LG As Long, LC As Long, lig As Long
  ' nom de l'image appellante
 NS = Application.Caller
  'N° ligne libre feuille MVT SITE
 LG = Worksheets("SYNTHESE").Range("N" & Rows.Count).End(xlUp).Row + 1
  'N° ligne en cours feuille catalogue
 LC = Worksheets("0LRT501CRBIS").Shapes(NS).TopLeftCell.Row 'je ne sais pas ce que c'est
  'colonne D MVT_SITE = colonne E SOMMAIRE

 'On Error GoTo pastrouvé
 lig = Sheets("SYNTHESE").Columns(4).Find(Sheets("0LRT501CRBIS").Range("B2")).Row

 With Worksheets("SYNTHESE")
   .Range("N" & lig).Value = Sheets("0LRT501CRBIS").Range("C" & LC).Value
   .Range("O" & lig).Value = Sheets("0LRT501CRBIS").Range("D" & LC).Value
   .Range("P" & lig).Value = Sheets("0LRT501CRBIS").Range("E" & LC).Value
   .Range("Q" & lig).Value = Sheets("0LRT501CRBIS").Range("F" & LC).Value
   .Range("R" & lig).Value = Sheets("0LRT501CRBIS").Range("G" & LC).Value
   .Range("S" & lig).Value = Sheets("0LRT501CRBIS").Range("H" & LC).Value
   .Range("T" & lig).Value = Sheets("0LRT501CRBIS").Range("I" & LC).Value
   .Range("W" & lig).Value = Sheets("0LRT501CRBIS").Range("J" & LC).Value
 End With
 Exit Sub
pastrouvé:
 MsgBox ("Je ne trouve pas cette équipement")
End Sub

je trouve ce code et ta structure bien compliqués !

En recopiant votre code il m'est apparu ce message "Erreur d'exécution '91': variable objet ou variable de bloc With non definie

avez vous un code et une structure moins compliqué ?

je ne mettrais pas de find, mais directement en Sheets("0LRT501CRBIS").Range("A1") la valeur de la ligne par un EQUIV

=EQUIV(B2;SYNTHESE!D:D;0)

je ne mettrais pas forcément des boutons sur chaque ligne car c'est galère ! mais j'agirais par double clic

ou alors ... est-ce que la ligne à transférer c'est aux choix ? ou par exemple toujours la dernière ?

j'ai du surement mal m'expliqué, je vais mettre ce sujet résolue et en refaire un mieux expliqué et mieux détaillé.

Merci de votre temps et de vos codes qui ne seront pas perdus.

Rechercher des sujets similaires à "recherche copie"