FORUM Tom's Hardware » Programmation » Autre » aide svp macro exel
 

aide svp macro exel

Il y a 451 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : aide svp macro exel
 
Plus d'informations

salut c'est encore moi .voila mon probleme :
j'ai deux classeur :
classeur2 casseur 3 :
ref | ...........|....... ref | ...........|.......
------------------------- ----------------------------------
1-012254 | | 1-44344 | |
--------------------------- --------------------------------
alors je voudrai:
- que quand dans mon classeur 3 j'ai 1 ref qui est pas dans le classeur 2 elle y est ajouté à la suite des autres dans le classeur 2
- que quand dans mon classeur 3 j'ai une ref qui est deja dans mon classeur 2 elle soit supprimer.
alor voila j'ai fai ca :

Code :
  1. Sub MacroEssai()
  2. '
  3. ' MacroEssai Macro
  4. ' Macro enregistrée le 01/06/2006 par Administrateur
  5. 'Workbooks("Classeur2" ).Activate
  6. 'Rows("1" ).Clear
  7. Workbooks("Classeur3" ).Activate
  8. Dim application2() As String
  9.     Dim k As Integer
  10.     Dim l As Integer
  11.     Dim Cel2 As Range
  12.     Set Cel2 = Range("A1" )
  13. Workbooks("Classeur2" ).Activate
  14. Dim Application() As String
  15.     Dim i As Integer
  16.     Dim j As Integer
  17.     Dim Cel1 As Range
  18.   ' Dim Sel As String
  19.     Set Cel1 = Range("A1" )
  20.    
  21. For i = 1 To 75
  22.     Workbooks("Classeur2" ).Activate
  23.     j = j + 1
  24.     'Redimension du tableau en conservant ses éléments
  25.     ReDim Preserve Application(j)
  26.     Application(j) = Cel1.Offset(i)
  27.     'Sel = Cel1.Offset(i)
  28.     'Cel1 = Sel
  29.     Workbooks("Classeur3" ).Activate
  30.     For k = 1 To 75
  31.             If (Cel2.Offset(k, 0) = Cel1.Offset(i, 0)) Then
  32.                 Dim Sel As String
  33.                 l = l + 1
  34.                 ReDim Preserve application2(l)
  35.                 Cel2.Offset(k) = Sel
  36.                 application2(l) = Cel2.Offset(k)
  37.                 Rows(1).Offset(k).Delete
  38.                
  39.             End If
  40.     Next k
  41. Next i
  42. Workbooks("Classeur3" ).Activate
  43. 'copie du classeur 2 sur lotr
  44. Dim Cel3 As Range, Cel4 As Range
  45. Set Cel3 = Range("A2:E75" )
  46. Set Cel4 = Workbooks("Classeur2" ).Worksheets("Feuil1" ).Range("A1" ).End(xlDown).Offset(1, 0)
  47. Cel3.Copy Cel4
  48. End Sub




mais voila quand il y a beaucoup de reference dans le classeur 3 il en oubli plein a chaque foi (ex : il ne transmet pa au classeur 2 les nouvelle reference ) et des foi aussi il ajoute dans le classeur 2 une ref deja existante (+ raremen).
ces 2 probleme arrive surtout quan il y a beaucoup de ref .



aider moi .merci

le corps s'évade, les idées persistent.
Plus d'informations

meme pas un svp! halala ces jeunes!

a écrit :

Code :
  1. ' MacroEssai Macro
  2. ' Macro enregistrée le 01/06/2006 par Administrateur
  3. 'Workbooks("Classeur2" ).Activate
  4. 'Rows("1" ).Clear
  5. ' Dim Sel As String
  6. 'Redimension du tableau en conservant ses éléments'Sel = Cel1.Offset(i)
  7.     'Cel1 = Sel
  8. 'copie du classeur 2 sur lotr




histoire que ce soit plus lisible, édite ton message stp en enlevant toutes les lignes que tu as mis en commentaire

a écrit :

Code :
  1. Dim Sel As String
  2. l = l + 1
  3. ReDim Preserve application2(l)
  4. Cel2.Offset(k) = Sel
  5. application2(l) = Cel2.Offset(k)




Je ne sais pas si ca vient de ca, mais en tout cas ta variable Sel est vide...donc ton Cel2.offset(k) et application2(l) aussi.

Tu as exécuter ton programme en pas à pas, en mettant en parrallèle ta fenêtre vb et excel?
Histoire de voir à quel endroit et à quel moment il fait des trucs bizarre.


Message édité par Nova13 le 02-06-2006 à 14:54:33
Plus d'informations

en fait c'est ce code la. l'autre avait des conneries dedans ( le Sel ) dsl

Code :
  1. Workbooks("Classeur3" ).Activate
  2. Dim application2() As String
  3.     Dim k As Integer
  4.     Dim l As Integer
  5.     Dim Cel2 As Range
  6.     Set Cel2 = Range("A1" )
  7. Workbooks("Classeur2" ).Activate
  8. Dim Application() As String
  9.     Dim i As Integer
  10.     Dim j As Integer
  11.     Dim Cel1 As Range
  12.   '
  13.     Set Cel1 = Range("A1" )
  14.    
  15. For i = 1 To 75
  16.     Workbooks("Classeur2" ).Activate
  17.     j = j + 1
  18.     ReDim Preserve Application(j)
  19.     Application(j) = Cel1.Offset(i)
  20.     Workbooks("Classeur3" ).Activate
  21.     For k = 1 To 75
  22.             If (Cel2.Offset(k, 0) = Cel1.Offset(i, 0)) Then
  23.                 Dim Sel As String
  24.                 l = l + 1
  25.                 ReDim Preserve application2(l)
  26.                 application2(l) = Cel2.Offset(k)
  27.                 Rows(1).Offset(k).Delete
  28.                
  29.             End If
  30.     Next k
  31. Next i
  32. Workbooks("Classeur3" ).Activate
  33. 'copie du classeur 2 sur lotr
  34. Dim Cel3 As Range, Cel4 As Range
  35. Set Cel3 = Range("A2:E75" )
  36. Set Cel4 = Workbooks("Classeur2" ).Worksheets("Feuil1" ).Range("A1" ).End(xlDown).Offset(1, 0)
  37. Cel3.Copy Cel4

le corps s'évade, les idées persistent.
Plus d'informations

Vire tes

Code :
  1. redim preserve application

ca sert à rien ces trucs (sauf erreur de ma part).

a écrit :

Code :
  1. Dim Cel3 As Range, Cel4 As Range
  2. Set Cel3 = Range("A2:E75" )
  3. Set Cel4 = Workbooks("Classeur2" ).Worksheets("Feuil1" ).Range("A1" ).End(xlDown).Offset(1, 0)
  4. Cel3.Copy Cel4


Là tu souhaite copier ton tableau de classeur 3 vers le classeur 2 en collant de puis la cellule A2?
Car si c'est ca que tu veux faire, je pense pas que ca marche, au mieux ca copiera ton tableau du classeur 3 vers la fin du tableau du classeur 2.
Si ce que tu veux faire c'est ce que je t'ai dit au début, c'est plutot ca:

Code :
  1. Dim Cel3 As Range, Cel4 As Range
  2. Set Cel3 = Range("A2:E75" )
  3. Set Cel4 = Workbooks("Classeur2" ).Worksheets("Feuil1" ).Range("A1" ).End(xlDown).Offset(1, 0)
  4. Cel3.select
  5. selection.copy
  6. cel4.select
  7. selection.paste
  8. cutcopymode=false



Sinon j'ai testé le reste de ton prog et il à l'air de bien fonctionner. Toi tu as vu qu'il allait mal à quel endroit?

Plus d'informations

non c'est bon en fait c'etait de la bidouille .maintenan ca marche nikel


  FORUM Tom's Hardware » Programmation » Autre » aide svp macro exel

Aller à :
 

Annonces Google
Publicité
Offres partenaires
Actualités relatives

Reclusa : le clavier pour joueurs de Microsoft arrive en France

Publié le 15 May 2007

Le clavier pour joueurs de Microsoft présenté en début d’année (cf. Reclusa, le clavier pour joueurs de Microsoft) commence à faire son apparition en France. Ce clavier coproduit avec Razer possède 6 touches macro (les macros sont enregistrées dans le c Lire la suite

Le Xacti S70 arrive chez Sanyo

Publié le 23 April 2007

Sanyo lance un nouvel appareil photo 7 Mpixels, le Xacti VPC-S70. Cet appareil de type point-and-shoot offre un zoom optique 3x, un écran LCD de 2,5" (115 000 pixels) et une sensibilité maximale de 800 ISO. Il possède un mode macro à 5 cm, son mode vidéo Lire la suite

Hynix plus libre en Europe

Publié le 25 April 2008

Le Conseil de l’Union européenne vient de lever les droits compensatoires qui pesaient sur Hynix alors que le fabricant de mémoires était soupçonner d’être injustement aidé par le gouvernement Coréen. Lire la suite

Le Razer Pro|Type Keyboard arrive enfin

Publié le 05 April 2007

Il y a un an Razer dévoilait son clavier Pro|Type Keyboard (cf. Le clavier pour iPod), le constructeur le lancera officiellement demain aux Etats-Unis. Ce clavier blanc possède la particularité d’accueillir un iPod, la synchronisation et la recharge du b Lire la suite

Les derniers tests

Le Home Cinema avec un graphique intégré ?

Publié le 03 October 2008

Le Radeon HD 3200 (chipset 780G) et le GeForce 8200 (chipset MCP78S) sont les premiers circuits vidéo intégrés à pouvoir accélérer la lecture du Blu-ray. Nous examinons en détail les performances de ces deux solutions. Lire la suite

Charts cartes graphiques Q3 2008 : 101 cartes testées

Publié le 29 September 2008

Les charts de 101 cartes graphiques anciennes et récentes sous 9 applications, avec au total 6767 scores. Quel gain attendre du remplacement de votre carte graphique par un nouveau modèle dans chaque application/résolution et en moyenne ? Lire la suite

Upgrader son portable en 9 leçons

Publié le 29 September 2008

Ergonomie, performances, autonomie, une dizaine d’améliorations sont réalisables sur votre PC Portable. Laissez-vous guider par la rédaction pour reprendre en mains votre vieille machine. Lire la suite

Que choisir ? Home Cinema 5.1 ou projecteur de son ?

Publié le 25 September 2008

Faut-il craquer pour un ensemble 5.1 ou pour une barre de son ? Découvrez les forces et faiblesses comparées de chaque système. Lire la suite

Les ressources relatives