Aide pour macro excell

Fermé
pipo - 29 oct. 2008 à 03:41
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 1 nov. 2008 à 22:25
Bonjour,
J'ai réussit a faire fonctionner une macro pour tranférer une cellule d'une 1er page sur une 2 em page et que su j'inscrit une nouvelle saisie dans cette cellule il me la transfère sur la 2 em page aussi, mais une colonne a coté a chaque que je fais une nouvelle saisie sur une cellule de la 1er page
Mon problème est que je ne veux pas seulement tranféré les saisies de nombre, mais aussi des résultats de formule comme add et soustraction
je pourrais faire des référence de cellule sur la 2 em feuille (sa fonctionne) mais mon tableau est infiniment grand et trop complexe a faire tout ces références
voici ma macro utilisé :
Const F2 = "Compilation", F1 = "Analyse"
Const pls = 1 'première ligne de saisie dans la feuille 1
Const dls = 5 'dernière ligne de saisie dans la feuille 1
Const cols = 1 'colonne de saisie dans le feuille 1 (1 pour colonne A)
Const pld = 1 '1ère ligne à renseigner dans la feuille 2
'par exemple si lign_dep = 3, la ligne 3 de la feuille 2 correspondra à la
'la ligne pls de la feuille A
Const cold = 1 '1ère colonne à renseigner dans la feuille 2 (3 pour C)


'La macro se déclanche à chaque saisie dans la colonne A de la Feuille 1
Private Sub Worksheet_Change(ByVal Target As Range)
'
ligne = Target.Row ' ligne de la cellule où on vient d'effectuer une saisie
If ligne < pls Or ligne > dls Then Exit Sub 'test si le ligne est entre pls et dls
colonne = Target.Column ' colonne dans la quelle on vien d'effectuer une saisie
If colonne <> cols Then Exit Sub 'si la colonne est différente de la colonne
'définie pour la saisie dans les constantes on sort de la macro
'
'si la première colonne de destination est vide, on la remplit
If Sheets(F2).Cells(ligne - pls + pld, cold) = Empty Then col_cop = cold: GoTo copie_cellule
'
'on va rechercher dans la feuille 2 la première cellule vide
'après les saisies précédentes
For n = cold To 255: test = Sheets("Analyse").Range("A1"): If Sheets(F2).Cells(ligne - pls + pld, n) = Empty Then col_cop = n: Exit For
Next

'
copie_cellule: ' on reporte la valeur saisie dans la feuille 1 vers la nouvelle cellule de la feuille 2
Sheets(F2).Cells(ligne - pls + pld, col_cop) = Sheets(F1).Cells(ligne, cols)
End Sub
merci pour vos judicieux conseil pipo !!!!!
A voir également:

4 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 oct. 2008 à 06:08
Bonjour,
Tu doit mettre tes constances dans un module général, ex: Module1
Pour éviter ce genre de problème met au dessus de chaque module, feuille et général
Option Explicit.
A+
0
est ce que tu aurais une idée plus clair pour éclairer ma lenterne dans ton cheminement pour que je puisse transféré un résultat obtenue a partir d'une équation sana en faire la saisie,,, tout en transposant le résultat sur une page différent et que a chaque nouvelle information dans la cellule de départ quel se décale d'une colonne a droite s'il y a pas d'information dans cette cellule !!!

Je te remercie pour l'info !!! pipo
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
30 oct. 2008 à 18:13
Boujour,
Juste au passage, ce code vous trouve la première cellule vide et donne le numéro de la colonne de la ligne considérée:
With Sheets(2)
colvide = .Range("iv3").End(xlToLeft).Column + 1
End With
Note: "iv3" est l'adresse de la dernière cellule de la ligne 3 (excel 2003) (excell 2007 : "xfd3")
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
31 oct. 2008 à 16:14
Bonjour,
Tu dit...
    ligne = Target.Row ' ligne de la cellule où on vient d'effectuer une saisie 

C'est faux, c'est la ligne de la cellule qui vient d'être activée AVANT LA SAISIE
Pour connaître le contenu de la cellule qui vient d'être quittée voir cette astuce
A+
0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
31 oct. 2008 à 16:26
Bonjour
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
31 oct. 2008 à 20:10
Bonsoir lermite,

tu es sûr ? il utilise l'evenement Change pas SelectionChange...
eric
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
1 nov. 2008 à 22:25
Bonsoir Eric,
Ehhh. eh
Telement habitué que c'est Selection_Change que j'ai répondu à côté dans mon 2ém poste.
A+
0