recopie d'1 String d'un .xls ds 1 autre

N

Nann

Guest
;) Salut tout le monde,

Sur la Normandie cet après midi un temps gris mais assez lourd.

je me demande comment faire le remplacement d'une chaine de caractère d'un .xls par une autre autre d'un autre .xls

en PJ les deux fichiers xls d'exemple, cela rappeleras probablement des choses a Hellboy et à Hervé

ds le fichier bot1, j'ai un range de longueur aléatoire avec pour début

en 14ième ligne : ' OParts data ' pour début de modif

en énième ligne : ' E ' pour fin de modif, cette position est la seule qui varie

les ligne qui suive commence une ligne sur 2 par M1 ou M2
dans les lignes commencent par M1 la String1 a remplacer ( souvant NONE mais susseptible de différer )
dans les lignes commencent par M2 il y a la string de reférence à obtenir, puis à aller chercher ds le second .xls en ligne 2 et prendre cette chaine de caractère à mettre en lieu et place de String1 ce jusqu'a ' E '

Si quelqu'un comprend et peux m'aider merci d'avance pour ceux qui veulent des info supplémentaire pour tenter de comprendre ma demende demander le.



Merci d'avance à tout ceux qui ce pencheront sur mon pb.




:eek: :eek: [file name=bom.zip size=15763]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/bom.zip[/file]
 

Pièces jointes

  • bom.zip
    15.4 KB · Affichages: 15

Hervé

XLDnaute Barbatruc
Bonjour nann, le forum

En pièce jointe je te retourne le fichier bot1.

Il faut que tes deux fichiers soient ouvert.

Dans le fichier mat, je n'ai pas trouvé de référence M..

En espérant avoir compris.

La macro :
Sub Bouton1_QuandClic()
Dim tablo As Range
Dim plage As Range
Dim c As Range
Dim i As Integer

'nom du fichier et de la feuille à adapter
Set plage = Workbooks('mate.xls').Sheets('materiel').Range('a1').CurrentRegion


For Each c In Range('a15:a' & Range('a65536').End(xlUp).Row)
   
If Left(c, 2) = 'M1' Then
       
For i = 1 To plage.Columns.Count
           
If InStr(1, plage(2, i), Mid(c.Offset(1, 0), 3)) > 0 Then
                c.Value = Replace(c, 'NONE', plage(1, i))
                c.Value = Replace(c, 'MURATA', plage(1, i))
               
Exit For
           
End If
       
Next i
   
End If
Next c
End Sub

salut
[file name=bot1.zip size=11832]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/bot1.zip[/file]
 

Pièces jointes

  • bot1.zip
    11.6 KB · Affichages: 20

Statistiques des forums

Discussions
312 295
Messages
2 086 958
Membres
103 404
dernier inscrit
sultan87