|
|
|
|
Bonjour aux pros de l'info!
J'ai déjà envoyé un message hier et les réponses m'ont entièrement satisfaite. Donc je retente une question à des âmes charitables qui auraient pitié d'une pauvre néophyte...
J'ai un tableau Excel du genre
protéines peptides ABCDEF DE GHIJKLAB ABC ... IJ ... ....
protéines Réponse1 Position Réponse2 Position .... ABCDEF DE 4 ABC 1 .... GHIJKLAB IJ 3 ... ... ... ....
Configuration: Windows XP Internet Explorer 6.0
Bonjour Anne, Il te faut utliser la fonction de recherche 'Instr' :
ActiveCell= InStr(Range("a" & ActiveCell.Row).Value, ActiveCell.Offset(0, -1).Value)
Il te sera facile d'adapter les n° de colonnes dans l'instruction 'Offset(Ligne, Colonne)' en fonction de tes besoins. Pour essai, j'ai saisi cette ligne dans l'événement 'SelectionChange' de la feuille de calcul, avec pour condition que la cellule sélectionnée est bien dans les colonnes 3 ou 5. Il est facile d'automatiser la procédure dans une boucle de balayage d'un zone précise. Cordialement. |
Bonjour,
Option Explicit
Sub ChercheReptides()
Dim PlageP As Range, PlageR As Range
Dim Cellule As Range, Boite As Range
Dim Position As Long, Adresse As Long
Set PlageP = Range("A2:A" & Range("A2:A65536").End(xlDown).Row)
Set PlageR = Range("B2:B" & Range("B2:B65536").End(xlDown).Row)
Adresse = 3
For Each Cellule In PlageP
For Each Boite In PlageR
Position = InStr(1, Cellule.Value, Boite.Value, vbTextCompare)
If (Position > 0) Then
Cellule.Offset(0, Adresse).Value = Boite.Value
Cellule.Offset(0, Adresse + 1).Value = Position
Adresse = (Adresse + 2)
End If
Next Boite
Next Cellule
End Sub
'
Lupin
|
Re :
|