soucis sur une prog d'excel avec visual basic - Logiciels - Windows & Software
Marsh Posté le 22-11-2004 à 18:26:00
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...
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
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
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.
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.
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
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
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...
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.