A voir également:
- Macro
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Macro Recorder - Télécharger - Divers Utilitaires
- Macro word - Guide
- Macro souris ✓ - Forum Windows
4 réponses
eriiic
Messages postés
24513
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 mars 2023
7 168
27 oct. 2009 à 22:09
27 oct. 2009 à 22:09
Bonsoir,
Une proposition : Report.xls
En Feuil2 il faut nommer la plage des tarifs : 'tarif'
Seules les cellules vides sont mises à jour, j'ajoute un fond vert pour les repérer pendant les tests.
eric
Une proposition : Report.xls
En Feuil2 il faut nommer la plage des tarifs : 'tarif'
Seules les cellules vides sont mises à jour, j'ajoute un fond vert pour les repérer pendant les tests.
eric
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 657
28 oct. 2009 à 09:00
28 oct. 2009 à 09:00
bonjour
Voici ton classeur avec la macro :
http://www.cijoint.fr/cjlink.php?file=cj200910/cijvJo1igp.xls
Il faut bien sûr que tu autorises l'exécution des macros pour qu'elle soit efficiente.
Voici ton classeur avec la macro :
http://www.cijoint.fr/cjlink.php?file=cj200910/cijvJo1igp.xls
Il faut bien sûr que tu autorises l'exécution des macros pour qu'elle soit efficiente.
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 657
27 oct. 2009 à 22:12
27 oct. 2009 à 22:12
bonjour
Avec une macro événementielle sur la Feuil2 cela devrait faire ce que tu veux
Seuls les nouveaux tarifs pour un produit ou les nouveaux produits sont rajoutés.
Avec une macro événementielle sur la Feuil2 cela devrait faire ce que tu veux
Option Explicit
Private Sub Worksheet_Change(ByVal sel As Range)
If sel.Column < 3 Then 'seules les colonnes A et B sont cocernées
Dim cel As Object
For Each cel In sel ' boucle pour chaque cellule mise à jour
Select Case cel.Column
Case 1 ' colonne A
Call trt_elm(cel.Value, cel.Offset(0, 1).Value)
Case 2 ' colonne B
Call trt_elm(cel.Offset(0, -1).Value, cel.Value)
End Select
Next cel
End If
End Sub
Public Sub trt_elm(num, tar) 'analyse Feuil1
Dim lig As Long, lyg As Long
With Sheets("Feuil1")
For lig = 1 To .Cells(.Columns(1).Cells.Count, 1).End(xlUp).Row
If .Cells(lig, 1).Value = num Then 'n° trouvé
If .Cells(lig, 3).Value = tar Then Exit Sub 'tarif égal => rien
For lyg = lig To .Cells(.Columns(1).Cells.Count, 1).End(xlUp).Row
If .Cells(lyg, 3).Value = tar Then Exit Sub 'tarif égal => rien
Next lyg 'pas de n° et tarif égaux =>on ajoute
.Cells(lyg, 1).Value = num
.Cells(lyg, 3).Value = tar
Exit Sub
End If
Next lig
If lig > .Cells(.Columns(1).Cells.Count, 1).End(xlUp).Row Then
.Cells(lig, 1).Value = num
.Cells(lig, 3).Value = tar
End If
End With
End Sub
Seuls les nouveaux tarifs pour un produit ou les nouveaux produits sont rajoutés.
baborge
Messages postés
93
Date d'inscription
dimanche 6 juin 2004
Statut
Membre
Dernière intervention
22 septembre 2012
33
27 oct. 2009 à 22:20
27 oct. 2009 à 22:20
Bonsoir,
Je veux bien te donner un coup de main pour ton fichier, mais je ne vois pas comment tu va gerer les changements successifs de tarifs avec ta methode.
imagine:
Ne peut on pas plutot envisager:
- une colonne ancien tarif
- une colonne Tarif
- une colonne date
Cela permet de conserver les 2 derniers tarifs (y compris l'actuel)
A toi de voir?
@+
Laurent
Je veux bien te donner un coup de main pour ton fichier, mais je ne vois pas comment tu va gerer les changements successifs de tarifs avec ta methode.
imagine:
tarif 1 : 89 tarif 2: 120 tarif 3: 125 etc... Dans ce cas, on a déjà 3 fois la même ligne ...
Ne peut on pas plutot envisager:
- une colonne ancien tarif
- une colonne Tarif
- une colonne date
Cela permet de conserver les 2 derniers tarifs (y compris l'actuel)
A toi de voir?
@+
Laurent
Salut,
Oui je comprends ce que tu veux dire mais c'est vrai que c'est difficile de se projeter lorsqu'on a pas tout le tableau. En fait ces lignes doivent de toutes facon être créer pour d'autres colonnes alors ce n'est pas grave mais si je ne devais pas rajouter des données dans d'autres colonnes ton idée aurait été idéal. :-)
Oui je comprends ce que tu veux dire mais c'est vrai que c'est difficile de se projeter lorsqu'on a pas tout le tableau. En fait ces lignes doivent de toutes facon être créer pour d'autres colonnes alors ce n'est pas grave mais si je ne devais pas rajouter des données dans d'autres colonnes ton idée aurait été idéal. :-)
28 oct. 2009 à 10:44