• Initiateur de la discussion Initiateur de la discussion rjcb
  • 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 !

rjcb

XLDnaute Occasionnel
Salut a tous,

Voila je viens de me faire une macro, mais elle ne fonctionne pas comme je voudrais:

J'ai un classeur avec 2 feuilles:

- Base_01_fix_voice_announcement
- TT

Le but de la macro est de voir si il existe déja un enregistrement dans TT contenu dans la feuille Base_01_fix_voice_announcement.

Mais cela fonctionne pas trop car imaginons qu'un enregistrement de TT en B4 soit différent de celui de B1 dans Base_01_fix_voice_announcement alors il va me le copier, alors que celui ci se trouve juste après en B5 ... (boucle for)

J'espère avoir été clair

Code:
Sub Find_01()

'Set ObjetClasseur = GetObject("V:\PRBT_Received\PRBT_EN.xls")
Dim col_base, col_client, i, j, k
k = 1

col_base = Sheets("Base_01_fix_voice_announcement").Range("B1").End(xlDown).Row 'numéro de la dernière ligne non vide en colonne C
col_client = Sheets("TT").Range("B1").End(xlDown).Row 'numéro de la dernière ligne non vide en colonne D


For j = 2 To 10 'on fait tourner de la ligne 2 à col_client

For i = 2 To 10 'on fait tourner de la ligne 2 à col_base

If Sheets("TT").Range("B1").Cells(j).Value = Sheets("Base_01_fix_voice_announcement").Range("B1").Cells(i).Value Then 'condition : si la valeur en colonne C = valeur colonne D alors...

Else

Sheets("Base_01_fix_voice_announcement").Range("B1").Cells(i).Copy 'copie la cellule D
Sheets("Macro").Range("B1").Cells(k).Select 'selectionne la cellule en C
ActiveSheet.Paste 'colle
Application.CutCopyMode = False '"sort" du coller
k = k + 1

End If 'fin de la condition
Next i 'prochaine ligne D


Next j 'prochaine ligne C

End Sub

Merci
 
Re : Macro de doublons

bonsoir,

ta demande n'est pas claire :

1. tu dis "Le but de la macro est de voir si il existe déja un enregistrement dans TT contenu dans la feuille Base_01_fix_voice_announcement" ==> recherche de doublon
2. on a l'impression que tu veux ajouter dans "tt" les enregistrement de "Base_01_fix_voice_announcement" absent de "TT ==> autrement dit fusionner les deux feuilles et la ta logique n'est pas bonne


Alors que veux-tu, donne un exemple pour illustrer le problème


A suivre

GIBI
 
Re : Macro de doublons

Ola!

Bon j'ai réussi:

Code:
Sub Find_01()

'Set ObjetClasseur = GetObject("V:\PRBT_Received\PRBT_EN.xls")
Dim col_base, col_client, i, j
Dim Condition As Boolean

Condition = False
k = 1

col_base = Sheets("Base_01_fix_voice_announcement").Range("B1").End(xlDown).Row 'numéro de la dernière ligne non vide en colonne C
col_client = Sheets("TT").Range("B1").End(xlDown).Row 'numéro de la dernière ligne non vide en colonne D


For i = 2 To col_client 'on fait tourner de la ligne 2 à col_client
    Condition = False
    For j = 2 To col_client 'on fait tourner de la ligne 2 à col_base

    If (Sheets("TT").Range("B1").Cells(i).Value = Sheets("Base_01_fix_voice_announcement").Range("B1").Cells(j).Value) Then
    Condition = True
    Exit For
    End If
    Next j

    If Condition = False Then
    Sheets("TT").Range("B1").Cells(i).Copy 'copie la cellule D
    Sheets("Macro").Range("B1").Cells(k).Select 'selectionne la cellule en C
    ActiveSheet.Paste 'colle
    Application.CutCopyMode = False '"sort" du coller
    k = k + 1
    End If
Next i

End Sub

En fait c'est si un enregistrement de TT n'existe pas dans Base_01_fix_voice_announcement, alors le copier.

A+
 
- 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
8
Affichages
391
Réponses
15
Affichages
788
Réponses
5
Affichages
914
Réponses
4
Affichages
735
Réponses
1
Affichages
325
Réponses
8
Affichages
783
Retour