Mise à jour par VBA

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

Murdoc

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur ce forum et je commence l'apprentissage de VBA. En en parlant autour de moi on m'a donc conseillé ce forum.
Mon problème concerne la mise à jour d'un fichier. Je m'explique. J'aimerais que toutes mes données X situées dans la colonne A de la feuille2 et non existante dans la colonne A de la feuille1 se copie colle automatiquement à la suite de la colonne A de la feuille1.

J'imagine que sa doit être un jeu d'enfant pour pas mal de gens mais pour moi c'est réellement une grosse prise de tête.

Est-ce que quelqu'un aurait une idée du code à mettre en place??

Merci d'avance
 
Re : Mise à jour par VBA

Bonjour Murdoc, bienvenue sur XLD,

Voici un exemple:

Code:
Sub copie()
Dim Sh1 As Worksheet, Sh2 As Worksheet, Cell As Range, Trouve As Range

Set Sh1 = Sheets("Feuil1")
Set Sh2 = Sheets("Feuil2")
For Each Cell In Sh2.Range("A1:A" & Sh2.Range("A65536").End(xlUp).Row)
  With Sh1
    Set Trouve = .Range("A1:A" & Sh1.Range("A65536").End(xlUp).Row).Find(Cell.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Trouve Is Nothing Then .Range("A65536").End(xlUp).Offset(1).Value = Cell.Value
  End With
Next
End Sub
 
Re : Mise à jour par VBA

Re,

Pas de problème 😉.
Code:
For Each Cell In Sh2.Range("A1:A" & [COLOR=SandyBrown][B]Sh2.Range("A65536").End(xlUp).Row[/B][/COLOR])
Pour chaque Cellule Cell de la feuille 2 Sh2 dans la plage A1:A dernière ligne non vide de la colonne A
Code:
    Set Trouve = .Range("A1:A" & Sh1.Range("A65536").End(xlUp).Row).Find(Cell.Value, LookIn:=xlValues, lookat:=xlWhole)
On cherche la valeur de cette cellule Cell.Value dans la feuille 1 (même plage) que l'on attribue à Trouve.
Code:
    [COLOR=Blue][B]If Trouve Is Nothing[/B][/COLOR] Then .[COLOR=Red][B]Range("A65536").End(xlUp)[/B][/COLOR].[B][COLOR=Green]Offset(1)[/COLOR][/B].Value = Cell.Value
Si cette donnée n'est pas trouvée alors on copie après la dernière cellule non vide dans la feuille 1 colonne A.

Espérant avoir éclairé ta lanterne 🙂.
 
- 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
6
Affichages
161
Retour