soucis sur une prog d'excel avec visual basic

soucis sur une prog d'excel avec visual basic - Logiciels - Windows & Software

Marsh Posté le 22-11-2004 à 18:04:15    

bonjour,
j'ai un soucis je n'arrive pas à faire ma programmation sur une feuille d'excel avec visual basic.
Je souhaiterais obtenir une programmation avec un bouton dans une feuille d'excel pour en faire :
dans un tableau la recherche d'1 numero dans la colonne A et renvoyer la ligne trouver dans une autre feuille d'excel mais dans des cases sépare.
Exemple : dans la feuille 1 j'ai un tableau qui va de A8 à P500
dans la colonne A j'ai le un numéro "1.2.3.4.5.." dans la colonne B j'ai une réference,... ensuite j'ai dans la feuille 2 un documents que j'imprime apres avoir fait le renvoie des données de la feuille 1 (fait par une macro et un bouton)la colonne A (de la feuille 1)va dans la case B8 de la feuille 2.Maintenant le bouton que je veux creer sert à retrouver une ligne (le numero inscrit dans la colonne A)puis renvoyer tout les renseignements de la ligne dans le la feuille 2 a leur emplacement.
Merci par avance pour votre aide.
j'ai besoin de cette prog pour avance plus vite dans mon boulot.
julien.


---------------
julien.
Reply

Marsh Posté le 22-11-2004 à 18:04:15   

Reply

Marsh Posté le 22-11-2004 à 18:26:00    

:whistle:  
 
pas besoin de macro...
si tu met des RECHERCHEV partout en feuille 2 basés sur le contenu de la cellule Feuil2!B8, toute la feuille 2 se mettra à jour automatiquement lorsque le numéro inscrit en Feuil2!B8 changera...

Reply

Marsh Posté le 22-11-2004 à 19:09:32    

bonsoir,
oui c'est une bonne idee, seulement j'ai une macro qui renvoie les donnees de ma feuilles 1 en feuille 2, et j'ai deja essayer de mettre les formules de rechercheV dans la feuille 2 mais avec la macro elle ecrase la formule lorsque je l'active.c'est pour cela que j'ai besoin d'une autre macro qui puisse me remmettre les valeurs que j'ai besoin.
si tu veux j'ai un tableau recapitulatif en feuille 1 qui par une macro renvoie different renseignement dans la feuilles 2 pour imprimer mon document, et la macro permet de mettre la dernier ligne ecrite mais si j'ai besoin de reedite un document bien avant la dernier ligne je ne peut pas le faire (d'ou ma demande).
Merci pour l'aide que vous apporter.
julien


---------------
julien.
Reply

Marsh Posté le 22-11-2004 à 19:23:03    

hum
 
j'y connais pas grand chose en VBA mais à ta place, je ferai une copie de la feuille 2 sur laquelle je mettrai les RECHERCHEV et qui ne serai pas modifié par la macro
 
sinon, il semblerait qu'a minima, une boite de dialogue s'ouvre pour te demander le numéro de la ligne à éditer et ce que numéro soit stocké sous la variable qui sert en ce moment à récupérer la dernière entrée
 
dans l'idéal, il te faudrait un formulaire qui te permette de sélectionner la ligne voulue dans un menu déroulant avec le même cheminement que précédemment
 
si tu postais le contenu de ta macro, certains experts pourront sans doute te dire la ou les lignes à changer pour ça

Reply

Marsh Posté le 22-11-2004 à 23:00:27    

bonsoir,
ok je vous joint ma macro actuel.
 
Private Sub CommandButton1_Click()
Dim L As Long, Dernier
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 1).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(4, 2).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 10).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(6, 2).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 9).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(7, 2).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 8).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(8, 8).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 7).Value
Exit For
 
Sheets("Identification" ).PrintOut
Sheets("DOCY011C" ).PrintOut
 
End If
Next L
Worksheets("Identification" ).Cells(2, 2).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 6).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(4, 8).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 11).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(3, 8).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 12).Value
Exit For
End If
Next L
Worksheets("Identification" ).Cells(5, 8).Value = Dernier
Sheets("Identification" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 1).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(7, 6).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 9).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(9, 6).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 7).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(3, 3).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 10).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(9, 2).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 6).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(1, 8).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 4).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(7, 2).Value = Dernier
Sheets("DOCY011C" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 11).Value
Exit For
End If
Next L
Worksheets("DOCY011C" ).Cells(5, 2).Value = Dernier
Sheets("DOCY011C" ).Select
 
Sheets("Identification" ).PrintOut
Sheets("DOCY011C" ).PrintOut
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 4).Value
Exit For
End If
Next L
Worksheets("fiche recap" ).Cells(868, 2).Value = Dernier
Sheets("fiche recap" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 12).Value
Exit For
End If
Next L
Worksheets("fiche recap" ).Cells(868, 1).Value = Dernier
Sheets("fiche recap" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 11).Value
Exit For
End If
Next L
Worksheets("fiche recap" ).Cells(868, 3).Value = Dernier
Sheets("fiche recap" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 7).Value
Exit For
End If
Next L
Worksheets("fiche recap" ).Cells(868, 5).Value = Dernier
Sheets("fiche recap" ).Select
 
For L = 65236 To 262 Step (-1)
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then
Dernier = Worksheets("Reception" ).Cells(L, 3).Value
Exit For
End If
Next L
Worksheets("fiche recap" ).Cells(868, 7).Value = Dernier
Sheets("fiche recap" ).Select
End Sub
 
Voila c'est la macro que j'utilise à savoir que la feuille 1 est nommé Reception et la feuille 2 est fiche recap.
Merci pour votre aide.
cordialement
julien.


---------------
julien.
Reply

Marsh Posté le 22-11-2004 à 23:04:27    

ah oui j'ai oublie de mettre que cette macro renvoie sur deux documents la feuille 1 etant toujours Reception, et que la feuille 2 est identification, feuille 3 docty011c et le tout j'imprime avec la macro.


---------------
julien.
Reply

Marsh Posté le 23-11-2004 à 08:43:36    

bon chuis pas super bon en VBA mais j'ai l'impression qu'il suffirait de virer tous les If et For et de rentrer directement une valeur pour L avec une boite de dialogue
 

Reply

Marsh Posté le 23-11-2004 à 18:03:36    

bonsoir,
j'ai essayer mais cela ne fonctionne pas en retirrant les if et/for il me refuse de prendre la derniere cellule.
donc je ne sais pas vraiment comment faire.
cordialement. julien


---------------
julien.
Reply

Marsh Posté le 23-11-2004 à 19:23:42    

si tu remplaces tout ce pâté :
 
For L = 65236 To 262 Step (-1)  
If Worksheets("Reception" ).Cells(L, 1).Value <> "" Then  
Dernier = Worksheets("Reception" ).Cells(L, 1).Value  
Exit For  
End If  
Next L  
Worksheets("Identification" ).Cells(4, 2).Value = Dernier  
Sheets("Identification" ).Select
 
par ça :
 
Worksheets("Identification" ).Cells(4, 2).Value = Worksheets("Reception" ).Cells(L, 1).Value  
Sheets("Identification" ).Select
 
en mettant tout au début de ta macro un truc du genre
L = un_numéro_au_pif
 
ça ne fonctionne pas?
 
je crois qu'il y a une rubrique programmation, tu devrais poster ta macro en demandant ce que tu dois modifier pour qu'elle ne te prenne plus la dernière ligne mais qu'elle te laisse le choix...

Reply

Sujets relatifs:

Leave a Replay

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