Bonjour ,
Tout d’abord je tiens à préciser que Je ne suis pas un confirmé en programmation.
Voici mon problème que j’ai tenté de résoudre après des heures de recherches mais en vain.
j`ai une base de données (feuille1) et des nouvelles informations (feuille2).
Je souhaiterais comparer ce que j`ai dans ma nouvelle feuille par rapport à ce qui est déjà présent dans la base de données.
Ce qui est commun à la feuille 1 et 2, est, ou sont, supprimé(s) dans la feuille 2.
Or lorsque je saisie les données au clavier dans la plage « x3 :aa20 » tout fonctionne comme je le souhaite. (Grâce à la macro de "MERCATOG")
Mais lorsque je (fais copier/coller par macro) les données saisies en « AE3 » et triées en « x3 :aa70082) j’ai un message d’erreur. (Incompatiliblité de type" ?)
Qui pourrait m’ expliquer pourquoi et le cas échéant remédier au problème ?
Par avance merci.
voici ma macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub TriHorizontalSELECTIONAlain() Dim PlgALAIN As Range With Worksheets("Feuil1") Set PlgALAIN = .Range("x3:Aa782").Resize(, 4) End With Application.ScreenUpdating = False TriHorizontalALAIN PlgALAIN End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub TriHorizontalALAIN(Rg As Range) Application.EnableEvents = False 'Application.Calculation = xlCalculationManual For Each r In Rg.Rows r.Sort Key1:=r.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight Next 'Application.Calculation = xlCalculationManual Application.EnableEvents = True End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub RANGEBasedonnees() Dim RES RES = Sheets("feuil1").Range("q3:t1000").Value Sheets("feuil1").Range("A1:D1000").Value = RES End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub RANGESELEC() Dim BD BD = Sheets("feuil1").Range("x3:aa782").Value Sheets("feuil2").Range("A1:D782").Value = BD End Sub
PS : « 'On Error Resume Next » n’y fait rien non plus…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub compare() 'dont l'auteur est MERCATOG avec mes remerciements !! Dim LastLig1 As Long, LastLig2 As Long, i As Long Dim c As Range Application.ScreenUpdating = False LastLig1 = Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row With Sheets("Feuil2") LastLig2 = .Cells(Rows.Count, 1).End(xlUp).Row For i = LastLig2 To 1 Step -1 'On Error Resume Next Set c = Sheets("Feuil1").Range("A1:A" & LastLig1).Find(.Range("A" & i).Value, lookat:=xlWhole) If Not c Is Nothing Then .Rows(i).Delete LastLig2 = LastLig2 - 1 Set c = Nothing End If Next i If LastLig2 > 0 Then .Range("A1:L" & LastLig2).Copy Sheets("Feuil1").Range("A" & LastLig1 + 1) End With End Sub
Partager