Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème mémoire virtuelle avec find

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 !

phdumon

XLDnaute Nouveau
Bonjour à tous,

J'ai créé une application professionnelle pour le bureau. Le tableau excel, par une macro, envoie des éléments repris dans le tableau ,dans des documents word.

Lorsque j'ai lancé cette macro et qu'ensuite, je retourne dans excel pour lancer une macro employant la fonction FIND, la macro ne fonctionne plus elle ne trouve plus rien.

Si j'emploi cette macro sans avoir au préalablement employé une macro renvoyant des éléments repris dans le tableau vers un document word, elle fonctionne parfaitement.

J'ai lu que çà pourrait venir de la mémoire tampon virtuelle.

Avez-vous une idée?
 
Re : problème mémoire virtuelle avec find

Voici d'ailleurs le code:

Set WordApp = Nothing
UserForm1.Hide
Worksheets("résultats").Range("A2:G50000").ClearContents
Worksheets("résultats").Range("A2:F50").Interior.ColorIndex = 0
Worksheets("dossiers").Activate
Dim ValAChercher
Dim couleur
Dim NextRow As Long
Dim Entry1 As String, Entry2 As String, Entry3 As String, Entry4 As String, Entry5 As String, Entry6 As String, Entry7 As String
Dim macell As Range, premcell As Range
ValAChercher = InputBox("Uniquement nom ou partie du nom de famille :")
With Worksheets("dossiers").Range("b1:b50000")
Set macell = .Find(ValAChercher, LookIn:=xlValues)
If Not macell Is Nothing Then
Set premcell = macell
Do
NextRow = Worksheets("résultats").Range("A65536").End(xlUp).Row + 1
Entry1 = macell.Offset(0, 0).Value
Entry2 = macell.Offset(0, 1).Value
Entry3 = macell.Offset(0, 2).Value
Entry4 = macell.Offset(0, 3).Value
Entry5 = macell.Offset(0, -1).Value & "-" & macell.Offset(0, 4).Value
Entry6 = macell.Offset(0, 5).Value
Entry7 = macell.Offset(0, 6).Value & " / " & macell.Offset(0, 7).Value
Worksheets("résultats").Activate
Cells(NextRow, 1) = Entry1
Cells(NextRow, 1).Interior.ColorIndex = macell.Offset(0, 0).Interior.ColorIndex
Cells(NextRow, 2) = Entry2
Cells(NextRow, 2).Interior.ColorIndex = macell.Offset(0, 1).Interior.ColorIndex
Cells(NextRow, 3) = Entry3
Cells(NextRow, 3).Interior.ColorIndex = macell.Offset(0, 2).Interior.ColorIndex
Cells(NextRow, 4) = Entry4
Cells(NextRow, 4).Interior.ColorIndex = macell.Offset(0, 3).Interior.ColorIndex
Cells(NextRow, 5) = Entry5
Cells(NextRow, 5).Interior.ColorIndex = macell.Offset(0, -1).Interior.ColorIndex
Cells(NextRow, 6) = Entry6
Cells(NextRow, 7) = Entry7
Set macell = .FindNext(macell)
Loop While Not macell Is Nothing And Not macell.Address = premcell.Address
End If
End With
Columns("E:E").Select
Range("A1:L50000").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End sub
 
Re : problème mémoire virtuelle avec find

Bonjour à tous,

Excellente question, skoobi, étant donné que Find conserve les derniers paramètres utilisés, c'est bien ça ?
donc pour Find il est bon de renseigner tous les arguments...

.Find(What:="aaa", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
 
Re : problème mémoire virtuelle avec find

Re,

salut tototiti 🙂,

étant donné que Find conserve les derniers paramètres utilisés, c'est bien ça? donc pour Find il est bon de renseigner tous les arguments...
Oui à ceci près que personnellement je n'utilise systématiquement que les 2 premiers cités ici:

Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que vous utilisez cette méthode.
 
Re : problème mémoire virtuelle avec find

Bonjour Phdumon, Skoobi, Tototiti,

Vu que l'inputbox demande une "partie du nom de famille", j'ajouterai simplement le paramètre Lookat:=XlPart. Effectivement, si par hasard l'autre macro utilise la valeur XlWhole pour ce paramètre, cette option reste valide tant qu'elle n'est pas modifiée.

Code:
ValAChercher = InputBox("Uniquement nom ou partie du nom de famille :")
With Worksheets("dossiers").Range("b1:b50000")
Set macell = .Find(ValAChercher, LookIn:=xlValues, LookAt:=XlPart)

@+

Gael
 
Re : problème mémoire virtuelle avec find

MERCI POUR LA SOLUTION: cà fonctionne à merveille.
Il y a plus d'un an que je cherchai une solution à ce problème...
Chapeau aux grands spécialistes Skoobi tototiti2008 et Gael
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…