Macro
Fermé
Tess88
Messages postés
1
Date d'inscription
vendredi 3 mai 2013
Statut
Membre
Dernière intervention
3 mai 2013
-
3 mai 2013 à 19:49
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 6 mai 2013 à 19:19
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 6 mai 2013 à 19:19
A voir également:
- Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Telecharger macro nblettre.xla - Forum Bureautique
1 réponse
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
6 mai 2013 à 19:19
6 mai 2013 à 19:19
Bonjour,
Je suppose que les feuilles 1 et 2 sont identiques, essaies ce petit bout de programme, le résultat s'affiche en feuille 3 en te donnant en colonne A l'emplacement de la cellule dont le contenu est différent d'une feuille à l'autre, en B tes infos et en C celle du fournisseur. Tu n'as plus qu'à créer un bouton sur la feuille 3 et lui affecter la macro ci-dessous
en espérant que cela te convienne.
Je suppose que les feuilles 1 et 2 sont identiques, essaies ce petit bout de programme, le résultat s'affiche en feuille 3 en te donnant en colonne A l'emplacement de la cellule dont le contenu est différent d'une feuille à l'autre, en B tes infos et en C celle du fournisseur. Tu n'as plus qu'à créer un bouton sur la feuille 3 et lui affecter la macro ci-dessous
en espérant que cela te convienne.
Option Compare Text Sub ControleDesDonnees() Application.ScreenUpdating = False Dim DetectionDifference As Boolean 'nettoyage de la feuille de résultats *************************************** Sheets(3).Cells.ClearContents 'Recherche la dernière cellule de la feuille 1 "Mes infos " **************** Sheets(1).Select DerniereLigne1 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row DerniereColonne1 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column 'Recherche la dernière cellule de la feuille 2 "Infos fournisseur "*********** Sheets(2).Select DerniereLigne2 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row DerniereColonne2 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column 'Prendre comme référence la derniere cellule celle situé la plus basse et la plus à droite parmi les 2 feuilles **** If DerniereLigne1 >= DerniereLigne2 Then DerniereLigne = DerniereLigne1 Else DerniereLigne = DerniereLigne2 End If If DerniereColonne1 >= DerniereColonne2 Then DerniereColonne = DerniereColonne1 Else DerniereColonne = DerniereColonne2 End If DetectionDifference = False ReDim MesInfos(DerniereLigne & DerniereColonne) As String ReDim InfosFournisseur(DerniereLigne & DerniereColonne) As String ReDim Ecart(DerniereLigne & DerniereColonne) As String ReDim Cellule(DerniereLigne & DerniereColonne) As String For i = 1 To DerniereLigne For j = 1 To DerniereColonne If Sheets(1).Cells(i, j) <> Sheets(2).Cells(i, j) Then k = CInt(i & j) MesInfos(k) = Sheets(1).Cells(i, j) InfosFournisseur(k) = Sheets(2).Cells(i, j) Cellule(k) = Sheets(1).Cells(i, j).Address Ecart(k) = i & j DetectionDifference = True End If Next j Next i If DetectionDifference = False Then MsgBox "Pas d'écart constaté" Exit Sub End If Sheets(3).Select Range("A2").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop For i = 1 To DerniereLigne For j = 1 To DerniereColonne k = CInt(i & j) If Ecart(k) = "" Then GoTo Suivant ActiveCell.Value = Cellule(k) ActiveCell.Offset(0, 1).Value = MesInfos(k) ActiveCell.Offset(0, 2).Value = InfosFournisseur(k) ActiveCell.Offset(1, 0).Select Suivant: Next j Next i 'Affichage des entêtes ************************* Range("A1").Value = "Emplacement cellules" Range("B1").Value = "Mes infos" Range("C1").Value = "infos Fournisseur" Range("A1:C1").MergeCells = False End Sub