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

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

  • Copie de FormChercheMotToutClasseurFind.xls
    57.5 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
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

  • FormChercheMotToutClasseurFind.xls
    54 KB · Affichages: 4

zzZ

XLDnaute Nouveau
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!!
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Réponses
2
Affichages
140
Réponses
8
Affichages
472

Statistiques des forums

Discussions
312 102
Messages
2 085 303
Membres
102 857
dernier inscrit
Nony1931