comparer deux colonnes et copier les manquants

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

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 !

flo2002

XLDnaute Impliqué
Re bonjour à tous,

encore une macro bancale mais qui doit pas etre loin de fonctionner. Un coup d'oeil d'expert doit suffir.

Sub MAJ_RF()

Sheets('Extract_AFU').Visible = True
Sheets('Rolling_Forecast').Select
Cells.Select
Selection.RemoveSubtotal
Range('a1').Select

Dim Derligne1%, Derligne2%
Dim i1%, i2%
Dim Exist
Derligne1 = Sheets('Rolling_Forecast').Range('e65536').End(xlUp).Row
Derligne2 = Sheets('Extract_AFU').Range('c65536').End(xlUp).Row
For i2 = 1 To Derligne2
For i1 = 1 To Derligne1
If Sheets('Extract_AFU').Range('c2' & i2) = Sheets('Rolling_Forecast').Range('e10' & i1) Then
Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
Sheets('Rolling_Forecast').Range('e10' & Derligne1 + 1) = Sheets('Extract_AFU').Range('c2' & i2)
Derligne1 = Sheets('Rolling_Forecast').Range('e65536').End(xlUp).Row
Suivant:
Exist = 0
Next


Sheets('Extract_AFU').Visible = False
End Sub

Merci d'avance!

si besoin je peux donner plus d'explication quand à sa fonction.
 
bonjour

sans avoir approfondie ton code :

If Sheets('Extract_AFU').Range('c2' & i2) = Sheets('Rolling_Forecast').Range('e10' & i1) Then

ceci ne fonctionne pas, essayes comme ca :

If Sheets('Extract_AFU').Range('c' & i2) = Sheets('Rolling_Forecast').Range('e' & i1) Then

salut
 
Merci Hervé

c'est effectivemnt la qu'est le probleme mais meme corrigé il me met toujours erreur d'excution 13.

Je continu mes recherche


De plus je viens de rendre compte qu'il ne supprime pas les doublons. Ennuyeux.

Message édité par: flo2002, à: 13/06/2006 13:47
 
En faite quand je corrige une ligne c'est l'autre qui est surligner.
Etrange.
En faite, il doit comparer dans rolling_forecast la plage e10:dern lign avec dans extract_afu C2:dern lign. et me mettre ceux qu'il ne trouve pas à la suite de E dans rolling forecast.

En tout cas c'est ce que je lui demande.

merci d'avance.
 
re flo, salut gorfael 🙂


ma vision des choses


Sub MAJ_RF()
Dim c1 As Range, c2 As Range
Dim Exist As Byte
Dim ws1 As Worksheet
Dim ws2 As Worksheet



Set ws1 = Sheets('Rolling_Forecast')
Set ws2 = Sheets('Extract_AFU')

ws1.Cells.RemoveSubtotal

For Each c2 In ws2.Range('c2:c' & ws2.Range('c65536').End(xlUp).Row)
        Exist = 0
       
For Each c1 In ws1.Range('e10:e' & ws1.Range('e65536').End(xlUp).Row)
               
               
If c2 = c1 Then Exist = 1
       
Next c1

       
If Exist = 0 Then
               
With ws1
                        .Range('e' & .Range('e65536').End(xlUp).Row + 1) = c2
               
End With
       
End If
Next c2

End Sub


salut
 
Incompatibilité de type sur If c2 = c1 Then

Ne faut - il pas sauter une ligne après then?
Quand je le fais il me dit then sans for.

Merci de ton implication

je viens de voire que j'ai mis une formule en colonne c et que c'est en dure en E. est ce un probleme?

Message édité par: flo2002, à: 13/06/2006 14:40
 
re

ben mon implication va etre breve, vu que chez moi ca fonctionne 🙂

l'erreur 13 provient généralement d'un mauvais 'typage' de variable, par exemple, ce code provoque une erreur 13 :

Dim nombre As Byte
nombre = 'toto'

car le code atteint un chiffre (byte) et trouve du texte('toto').

dans ton cas c1 et c2 correspondent à des cellules de leurs boucles for each respective, et sont bien typé range(dim c1 as range...)

donc vraiment bizarre.

pour la syntaxe d'un if then il existe deux variantes :

1) sur une seule ligne et donc sans end if :
if ceci then faire cela
2) sur deux lignes avec donc un end if afin de cloturer le bloc d'instruction :
if ceci then
faire celà
end if

dans ce code je n'ai pas d'erreur de syntaxe.

regarde du coté de tes déclaration.

salut
 
Merci beaucoup je crois je commence à comprendre.

mon incompatibilité vient certaniement de cette formule: =SI(A2='';'';A2&O2)

puisque j'ai un & il se dit que c'est dy texte donc ca me va. mais de l'autre coté c'est en dure donc ni texte aussi.

Bizar en effet.
 
- 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

Réponses
15
Affichages
467
Réponses
4
Affichages
708
Réponses
4
Affichages
644
Réponses
5
Affichages
779
Retour