aide pour coordination entre 2 feuilles excel

aide pour coordination entre 2 feuilles excel - VB/VBA/VBS - Programmation

Marsh Posté le 27-06-2005 à 22:04:28    

Salut à tous. Voilà je suis en stage et j'ai une partie à réaliser sous excel. Alors en fait j'ai 2 feuilles de classeurs et sur l'une il faudrait qu'en sélectionnant une ligne cela remplisse la seconde feuille. La seconde feuille serait remplie à plusieurs endroits avec chacune des cellules de la feuille 1. En gros il faudrait qu'en sélectionnant une ligne, cela effectue un copier coller de chaque cellule pour la mettre automatiquement à certains endroits. Je ne sais pas si j'ai été très clair, je suis un newb sous excel, si vous pouviez me donner des indications ça serait sympa.
Merci d'avance  :)  
 
PS: Si vous voulez des précisions demandez moi mais c'est pas évident à expliquer comme ça  :(

Reply

Marsh Posté le 27-06-2005 à 22:04:28   

Reply

Marsh Posté le 28-06-2005 à 10:21:06    

en faite tu veut que quand tu selection une ligne sur le cote ou y a plein de numero ca remplisse la deuxieme feuil?
 
C'est ca? ou j'ai mal comprit?

Reply

Marsh Posté le 28-06-2005 à 20:22:37    

stagiaire6 a écrit :

en faite tu veut que quand tu selection une ligne sur le cote ou y a plein de numero ca remplisse la deuxieme feuil?
 
C'est ca? ou j'ai mal comprit?


 
Salut oui c'est exactement ça. En fait il prend une ligne de la 1ère feuille pour répartir les cellules de la ligne sur la 2e feuille, mais j'ai pas d'idées sur les fonctions à utiliser  :(

Reply

Marsh Posté le 29-06-2005 à 12:02:34    

La bonne nouvelle??? be je viens de finir il y a 1h une serie de fonctions qui font exactement ce que tu demandes!  
En gros j'ai 2 fichiers excel... l'un d'entre eux doit alimenter l'autre... les users doivent cliquer sur la ligne a updater, puis cliquer sur un bouton qui lance une macro et bim...la seule contrainte, c'est que les 2 fichiers aient au moins une colonne ID qui fasse le lien... Voilà le code:
 

Code :
  1. Dim appxl As Excel.Application
  2. Dim fichier As Window
  3. Dim feuille As Worksheet
  4. Dim id As String
  5. Dim param1 As String
  6. Dim param2 As String
  7. Sub connectExcel()
  8. Set appxl = CreateObject("Excel.application" )
  9. With appxl
  10.     .Workbooks.Open "file1.xls"
  11.     .Visible = False
  12. End With
  13. Set feuille = appxl.Sheets("Feuil1" )
  14. End Sub
  15. Sub disconnectExcel()
  16. appxl.Workbooks(Workbooks.Count).Save
  17. appxl.Workbooks(Workbooks.Count).Close
  18. End Sub
  19. Function retrieveData()
  20.     Selection.Rows.EntireRow.Select
  21.      
  22.     Rng = Selection.Rows.Count
  23.     If (Rng <> 1) Then
  24.         retrieveData = 0
  25.         MsgBox "Vous devez selectionner UNE et UNE SEULE ligne  "
  26.         Exit Function
  27.     Else
  28.         id = Selection.Columns(1)
  29.         param1 = Selection.Columns(4)
  30.         param2 = Selection.Columns(8)
  31.         retrieveData = id
  32.         Exit Function
  33.     End If
  34.    
  35. End Function
  36. Function chercherLigne(id)
  37.     i = 0
  38.     chercherLigne = 0
  39.     Dim cell As Range
  40.     For Each cell In feuille.Range("A1:A300" )
  41.        i = i + 1
  42.        If cell.Value <> "" Then
  43.             If Int(cell.Value) = Int(id) Then
  44.                chercherLigne = i
  45.                Exit Function
  46.             End If
  47.            
  48.        End If
  49.                
  50.     Next
  51. End Function
  52. Function BoutonUpdate_QuandClic()
  53.    connectExcel
  54.    result = retrieveData
  55.    If (result <> 0) Then
  56.         ligne = chercherLigne(result)
  57.         If (ligne <> 0) Then
  58.             feuille.Cells(ligne, "B" ) = param1
  59.             feuille.Cells(ligne, "D" ) = param2
  60.         Else
  61.             MsgBox "ID non trouvé dans le fichier destination"
  62.         End If
  63.    disconnectExcel
  64.  
  65.    End If
  66.  
  67. End Function


 
 
 
Si tu as des questions...n'hesite pas... (je sais je sais..je commente pas mon code! mea culpa

Reply

Marsh Posté le 29-06-2005 à 12:11:00    

euuuuh dans la fonction disconnectExcel... ce serait pas con non plus d'ajouter un petit appxl.quit (si tu veux pas te retrouver avec 15 appli excel qui tournent en taches de fond)!!!

Reply

Marsh Posté le 29-06-2005 à 18:05:37    

Merci alex@MS  :jap: , je vais tester pour voir si j'arrive à le faire marcher, mais c'est du boulot quand même respect  :jap:  je serais bien incapable d'arriver à ce niveau.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed