XL 2013 Rechercher dans un classeur et coper la valeur trouvée sur une feuille dans le même classeur

  • Initiateur de la discussion Initiateur de la discussion zzZ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zzZ

XLDnaute Nouveau
Bonjour
ça fait une semaine que je suis bloqué sur un sujet ; je lance la recherche d'un mot dans l'ensemble des feuilles sur le classeur ( en cliquant sur le bouton go) et ça se reporte sur une feuille "Temp" , mon 1er souci c'est que je désire copier toute ligne ou se situe le mote trouvé , mon 2ème souci est que dès que je lance une nouvelle recherche d'un nouveau mot l'ancienne data retrouvée s'écrase et se remplace par la nouvelle , voici mon programme :

Private Sub B_ok_Click()
If Me.TextBox1 = "" Then Exit Sub
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Temp").Delete
On Error GoTo 0
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Temp"
[A667] = Me.TextBox1


For i = 1 To 2
With Sheets(i).Cells
If IsDate(Me.TextBox1) Then
Set c = .Find(CDate(Me.TextBox1), LookIn:=xlValues, LookAt:=xlPart)

Else
Set c = .Find(Me.TextBox1, LookIn:=xlValues, LookAt:=xlPart)
ligne = Sheets("Temp").Range("a65536").End(xlUp).Row + 1
End If
If Not c Is Nothing Then
premier = c.Address

Do

temp = [A667]
Sheets("Temp").Hyperlinks.Add Anchor:=Sheets("Temp").Cells(xlCellTypeBlanks, 1), _
Address:="", SubAddress:="'" & Sheets(i).Name & "'" & "!" & c.Address, TextToDisplay:=temp 'Sheets(i).Name
Cells(ligne, 2) = Sheets(i).Name
Cells(ligne, 3) = c.Address
ligne = ligne + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End With
Next i

End Sub
merci pour votre aide 🙂 🙂
 

Pièces jointes

Re,

Ben oui, votre feuille temp est supprimée et recréer à chaque appel à la macro. Il est donc normal que cette feuille ne garde pas ses données qui disparaissent avec elle.

Dans le fichier joint, cela devrait le faire.

P.S. si vous utilisez excel 2013 enregistrer vos classeur en .xlsx
 

Pièces jointes

Re,

Ben oui, votre feuille temp est supprimée et recréer à chaque appel à la macro. Il est donc normal que cette feuille ne garde pas ses données qui disparaissent avec elle.

Dans le fichier joint, cela devrait le faire.

P.S. si vous utilisez excel 2013 enregistrer vos classeur en .xlsx
merci pour ton aide, ça m'a vraiment aidé , le premier problème est résolu . maintenant que j'essaye de copier coller la cellule B de la ligne ou se trouve le mot recherchée ,
wsTemp.Cells(ligne, 4) = Sheets(i).cells(c.Address) , 2) ne marche pas !! je suis bloquée sur ce point ,help!!
 
Bonjour,

Sheets(i).cells est inutile: c est un objet range, il sait sur quelle feuille il est.
Si c'est la première cellule à droite de c : c.offset(,1) fera l'affaire, et qui vous libèrera des adresses de cellules.

Vbatez bien
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
461
Retour