mon code ne marche pas ( c'est un code de recherche)

VBA_première_fois

XLDnaute Junior
bonjour Forum
Aprés plusieurs questions et modifications grâce à vos explication voici, mon code dans un fichier exemple.
Merci d’ouvrir le classeur nommé « source » car c’est lui qui contient mon USF, et contient les explications de ce que je fais.

Merci de m’informer ou se trouve l’erreur

merci par avance :eek:
 

Pièces jointes

  • nettoyage.zip
    19.4 KB · Affichages: 36
  • nettoyage.zip
    19.4 KB · Affichages: 35
  • nettoyage.zip
    19.4 KB · Affichages: 39

pierrejean

XLDnaute Barbatruc
Re : mon code ne marche pas ( c'est un code de recherche)

Bonjour VBA_premiere_fois

De mauvaises habitudes a perdre !!
1) Utiliser On Error Resume Next sans savoir ce que l'on couvre comme erreur
2) coller des espaces en fin de saisie

Ta macro revisitée

VB:
Private Sub CommandButton1_Click()
'On Error Resume Next
Dim Pdt As Worksheet
Dim DoSup As Worksheet
Dim fichier As String
Dim n As Integer
Dim wkbSource As Workbook
Dim wkbCible As Workbook
Dim ws As Worksheet, x&, i&, j&, k&, L&, a, nom As String
 
    Application.ScreenUpdating = False
    fichier = ThisWorkbook.Path
    
Set wkbSource = ThisWorkbook  'ThisWorkbook signifie le classeur de ma macro
Set FD = Application.FileDialog(msoFileDialogOpen)
    With FD
        fichier = ThisWorkbook.Path
        .Title = "Choisissez le Fichier que Vous Souhaitez Mettre à Jour"
        .InitialFileName = fichier & "\*"
        .Filters.Clear
        .Filters.Add "Fichier Excel", "*.xls"
        .AllowMultiSelect = False
        If .Show <> 0 Then
            nom = .SelectedItems(1)
        Else
            MsgBox "Vous n'avez aucun fichier dans votre dossier", , "Manque de Fichier"
        End If
    End With
 
Set DoSup = wkbSource.Worksheets("donnees_supprimees")
   
Set wkbSource = ThisWorkbook  'ThisWorkbook signifie le classeur de ma macro
Set wkbCible = Workbooks.Open(nom)
Set Pdt = wkbCible.Worksheets("PDT")
Application.Workbooks(1).Activate
'MsgBox "nom du classeuractif " & ActiveWorkbook.Name ''''' doit etre classeur de mon USF
 DoSup.Activate
 
 For n = 2 To Range("I65536").End(xlUp).Row
 Set c = Pdt.Columns("I").Find(DoSup.Range("I" & n), LookIn:=xlValues, lookat:=xlWhole)
     If Not c Is Nothing Then
        Ligne = c.Row
        Pdt.Cells(Ligne, 1).EntireRow.Delete
      End If
Next n
  MsgBox " fichier nettoyé"
  Unload UserForm1
End Sub
 

VBA_première_fois

XLDnaute Junior
Re : mon code ne marche pas ( c'est un code de recherche)

MERCI BCP pierrejean

sinon j'ai une toute dernière question

lorsque mon code trouve chien dans la colonne il s’arrête, moi j’ai besoin qu’il continue la recherche jusqu’à la dernière ligne non vide car il se peut que le mot chien soit répété

merci par avance :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal