Ma situation est que j'ouvre Workbook
de MS Word
où je trouve du texte et supprime toute la ligne de texte trouvé. Pour cela j'utilise Userform ayant des cases à cocher et des boutons. Le code ci-dessous passe en boucle dans toutes les cases à cocher et si C.Value
renvoie True
, il exécute l'action en appuyant sur Bouton CEEMEA. Je rencontre des problèmes avec Excel Object
nommant Xc
.Ouverture de classeur en tant qu'objet de Ms-Word et de texte de recherche à l'aide de case à cocher Supprimer la ligne entière puis fermer classeur
Pour la première fois que je cours CEEMEA macro il fonctionne correctement (Ouvre le classeur -> Rechercher le texte -> supprimer la ligne -> fermer le classeur, etc);
mais pour la deuxième fois, il renvoie l'erreur Run-time Error '13': Type mismatch
., jusqu'à présent, je pense qu'il peut y avoir quelque chose à gauche, que je n'ai pas Quit/Close/mis à zéro, (duplication de classeur)
J'avais vérifié toutes les orthographes, Tout est correct. J'ai eu Xc.Quit
à la fin, et Set Xc= Nothing
.
Je n'ai pas compris où ça allait mal. Je pense qu'à la première exécution il y a peut-être quelque chose que je n'ai pas Quit
ou Set
à Nothing
. Je mets tout le code ci-dessous. veuillez aider ...
S'il y a une meilleure façon de faire ce travail, veuillez le suggérer.
Dim Xc As Object
Set Xc = CreateObject("Excel.Application")
Xc.Visible = True
Set Wb = Xc.Workbooks.Open("C:\Users\dell\Desktop\EMEA CEEMEA\EMEA CC FINAL LIST.xls")
Dim C As MSForms.Control
For Each C In Me.Controls
If TypeName(C) = "CheckBox" Then
If C.Value = True Then
If C.Caption = "Select All" Then
Else
Dim ff As String
ff = Trim(C.Caption)
With Wb
.Application.Sheets("Sheet2").Select
.Application.Range("A1").Select
.Application.Cells.Find(What:=ff, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
.Application.ActiveCell.Rows("1:1").EntireRow.Select
.Application.Selection.Delete Shift:=xlUp
.Application.Range("A1").Select
End With
End If
End If
End If
Next C
Wb.Close SaveChanges:=True
Workbooks.Close
Set Wb = Nothing
Xc.Quit
Set Xc = Nothing
Vous n'avez pas spécifié Worksheet. Essayez '.Worksheet (" SheetName "). Trouver ...' – AntiDrondert