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

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
Vb
 
merci pour l'aide
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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