Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1796 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Creer une macro qui echange des donnees entre feuilles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Creer une macro qui echange des donnees entre feuilles

n°1356967
ptitity
Posté le 01-05-2006 à 09:12:51  profilanswer
 

Bonjour a tous,  
 
je debute sur vba et aurais besoin d'aide pour programmer une macro.  
 
je vous explique:  
j'ai feuil1 (qui est ma source de donnees) avec en colonne A les noms de 9 sites, en colonne B des numeros de serie et en colonne D des quantites.  
Debut de liste ligne 2.  
Il y a des doublons car le meme numero de serie peut apparaitre dans chaque site.  
 
Je souhaite renvoye les quantites sur une nouvelle feuille deja existante (feuil2) mais en separant les noms de sites par colonne.  
Debut de liste ligne 5.  
Cela m'evite les doublons.  
le numero de serie est en colonne A, les quantites s'inscrivent dans 9 colonnes (F a N) correspondant aux 9 sites que je separe.  
 
La macro doit donc garder les quantites en fonction du site mais aussi du numero de serie.  
 
En plus si un nouveau numero de serie apparait dans feuil1, la macro doit pouvoir l'inserer automatiquement dans feuil2.  
Et si un numero de serie disparait dans feuil1, la valeur 0 doit apparaitre dans feuil2.  
 
Si vous pouviez m'aider, merci.  

mood
Publicité
Posté le 01-05-2006 à 09:12:51  profilanswer
 

n°1357040
kiki29
Posté le 01-05-2006 à 12:17:29  profilanswer
 

La meilleure solution dans ton cas est de debuter via le macro recorder
menu Outils/macro/nouvelle macro et malheureusement il n'y a qu'en forgeant que l'on devient forgeron pour ce qui sera de l'optimisation manuelle du code et de son ecriture


Message édité par kiki29 le 01-05-2006 à 12:18:16
n°1357286
ptitity
Posté le 01-05-2006 à 18:35:00  profilanswer
 

c'est sur. ce qui me manque le plus c'est le temps. Mais je persevere dans mon apprentissage tout en esperant qu'un expert me donne les grandes lignes.

n°1357445
PGreg
Posté le 01-05-2006 à 22:39:12  profilanswer
 

Bonjour,  
 
Pour assurer la "simultanéité" de ta macro, tu peux la placer dans une boucle en doevents, ou encore aller la placer dans  :  
 
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Macro
End Sub
 
Ou :  
 
private sub workbook_open
'macro
end sub
 
dans l' objet ThisWorkbook.
 
 
Mais as tu un début de code ?
 

n°1358609
ptitity
Posté le 03-05-2006 à 13:51:31  profilanswer
 

merci pour ces petits conseils. Je suis en train de tenter un code mais ce n'est pas brillant. J'enverrai le code des que je serai sorti un peu de ce bourbier.

n°1362042
ptitity
Posté le 08-05-2006 à 22:40:23  profilanswer
 

j'ai commence mais je voudrais generaliser car pour le moment mon prog ne fonctionne que poiur une cellule specifique. comment generaliser a toute la colonne. quelqu'un peut m'aiguiller ?
 

Code :
  1. Dim vSite As String
  2. Dim vPart As Variant
  3. Dim vPrime As Variant
  4. Dim vCellule As Object
  5. vSite = Sheets("dlyinveu" ).[A394]
  6. vPart = Sheets("dlyinveu" ).[B394]
  7. vPrime = Sheets("Inventory" ).[A60]
  8. For Each vCellule In Sheets("Inventory" ).[F60]
  9.     If vSite = "Athens" And vPart = vPrime Then
  10.     Sheets("dlyinveu" ).[D394].Copy
  11.     vCellule.PasteSpecial Paste:=xlValues
  12.     Application.CutCopyMode = False
  13.     End If
  14. Next
  15. End Sub


n°1363850
PGreg
Posté le 10-05-2006 à 22:26:17  profilanswer
 

Salut,  
 
 Tu pourrais le faire dans un type de boucle comme ça :  
 
dim cpt as integer
cpt=1
...
Loop until cpt=0
 
Et utiliser des "sendkeys" (enter pour aller à la ligne, right et left pour aller de droite à gauche...)
Par contre il ne faut pas que le nombre de site soit trop important : Ca prendrait trop de temp, et il ya aurait un rique de "surchauffe".

n°1366390
ptitity
Posté le 15-05-2006 à 13:02:38  profilanswer
 

salut,
 
Je vais essayer.
je te tiens au courant.
Merci.

n°1367037
otobox
Maison fondée en 2005
Posté le 16-05-2006 à 00:17:19  profilanswer
 

Un tableau dynamique croisé ne ferait pas l'affaire dans un cas comme celui ci ?
 
kenavo,
 
Jean-Marc


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Creer une macro qui echange des donnees entre feuilles

 

Sujets relatifs
redirection après envoi de donnéesCacher des données
Solveur VBARécupération des données de formulaires via PHP
[VBA Excel] Récupérer le nom de fichier après Saveoptimisatiser la structure d'une base de données...
[C#] Créer un fichier Excelpb de base de données à free
[VBA-E] afficher des données dans des cellulesVisio VBA
Plus de sujets relatifs à : [VBA] Creer une macro qui echange des donnees entre feuilles


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR