Copier des données à partir de sa valeur

bol -  
 Vb -
Bonjour,

j'ai deux classeur dans lequelle je dois copier des données d'un classeur à un autre.
En effet, j'ai par exemple

une ligne dans mon tableau s'appellant à pour titre BONBON dans la colonne B
exemple:

BONBON | 4% (col C)| 10% (col D)| données allant jusqu'a la colonne X par exemple

je dois copier les pourcentages de la ligne BONBON dans la ligne d'un autre classeur ligne 2 colonne B allant jusqu'a X

ma question serait comment faire pour copier ces données d'un classeur à un autre en utilisant non pas le numeros de ligne mais le titre BONBON (en macro).

j'espère que vous avez compris ma question

merci d'avance

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Rechercher un mot et trouver sa position:

    Sub ChercheMot()
      Dim PremCell As String
      Dim Cell As Range
      Dim maligne As String
      Set Cell = Cells.Find("BONBON")
      If Not Cell Is Nothing Then
        PremCell = Cell.Address
        Do
          maligne = Cell.Address(RowAbsolute:=False)
          maligne = Replace(maligne, "$", "")
          MsgBox maligne
          Set Cell = Cells.FindNext(Cell)
        Loop Until Cell.Address = PremCell
      End If
    End Sub


    Ensuite tu te sers de l'enregistreur de macro pour faire ton opération et tu pourras mettre la position de BONBON dans la macro ainsi obtenue

    0
    1. bol
       
      Bonjour,

      merci pour votre réponse, est ce qu'il est possible que vous me rajouté des commentaires expliquant ce que fait exactement votre code.
      Comme je ne suis pas trés fort en VBA cela me permettrais de mieux comprendre.
      merci
      0
    2. Vb
       
      merci pour l'aide
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voici un exemple où l'on copie la ligne entière où se trouve BONBON de la Feuil1 à la Feuil2 au même endroit. Tout ceci est à adapter suivant le besoins:

    Option Explicit
     Dim maligne As String
    Private Sub CommandButton1_Click()
    ChercheMot 'on appelle la sub ChercheMot
    Rows(ActiveCell.Row).Select 'sélectionne la ligne entière où se trouve BONBON à modifier suivant les besoins
     Selection.Copy
        Sheets("Feuil2").Select 'sélectionne feuille destination
        Range(maligne).Select 'sélectionne la cellule
        Rows(ActiveCell.Row).Select 'sélectionne la ligne entière à modifier suivant les besoins
        ActiveSheet.Paste
    End Sub
    Sub ChercheMot()
      Dim PremCell As String
      Dim Cell As Range
      Set Cell = Cells.Find("BONBON")
      If Not Cell Is Nothing Then
        PremCell = Cell.Address
        'si il y a plusieurs BONBON supprimer la boucle et ne prendre que le 1er
        Do
          maligne = Cell.Address(RowAbsolute:=False) 'donne la colonne et le numéro de ligne par ex: $G16
          maligne = Replace(maligne, "$", "") 'supprime $ pour avoir G16
        Range(maligne).Select 'sélectionne la cellule ou se trouve BONBON G16
       Set Cell = Cells.FindNext(Cell)
        Loop Until Cell.Address = PremCell
      End If
    End Sub
    

    0