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

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Excel ajout d'une ligne automatiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel ajout d'une ligne automatiquement

n°2334529
michelexce​l
Posté le 22-02-2006 à 00:29:13  profilanswer
 

Sujet: Ligne automatique
 
Bonjour à tous. Voici mon probleme:
J'ai une feuille FACTURE avec les champs Code_client, Qte,Prix par exemple.
Je voudrais copier ces valeurs sur une ligne dans une autre feuille RAPPORTS. Et si je fais une autre facture, je voudrais que les nouvelles valeurs s'ajoutent dans Rapport sur la ligne suivante. Comment faire pour pouvoir ajouter cette nouvelle ligne automatiquement et que les valeurs s'y inscrivent
Merci
 
Bonne journée

mood
Publicité
Posté le 22-02-2006 à 00:29:13  profilanswer
 

n°2334531
OncleJimbo
Posté le 22-02-2006 à 01:14:24  profilanswer
 

tu édite le premier post de ce topic avec le bouton http://forum-images.hardware.fr/themes_static/images_forum/1/edit.gif
et tu coche en bas suprimer ...
et tu recréé le même topic dans la bonne catégorie, on peut pas chager un topic de catégorie mais de sous cathégorie seulement ...


---------------
Serveur en cours de maintenance...  Veuillez nous excuser pour la gêne occasionnée
n°2335199
michelexce​l
Posté le 22-02-2006 à 16:57:35  profilanswer
 

Merci pour l'information. Je viens d'effacer mon 2ième message. Quant au message original c'est un responsable du Forum qui l'a déplacé.
Merci et bonne fin de journée
michel

n°2335652
Prozac
Tout va bien
Posté le 22-02-2006 à 22:57:51  profilanswer
 

Genre tu cliques sur un bouton et les valeurs sont sauvegardées sur une autre feuille ?
 
Tu connais un peu le VBA ?


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2335714
michelexce​l
Posté le 23-02-2006 à 01:37:59  profilanswer
 

Prozac a écrit :

Genre tu cliques sur un bouton et les valeurs sont sauvegardées sur une autre feuille ?
 
Tu connais un peu le VBA ?


 
Oui je connais assez bien VBA mais j'en apprend tous les jours!!. Oui  
je clique sur un bouton. En fait, lorsque la facture est
imprimée, je clique le bouton Valider qui premièrement "vide" les  
champs afin de pouvoir passer à une nouvelle facture et qui transfère
sur ma feuille RAPPORTS, sur une ligne le Code_client, le numéro de  
la facture et le montant.  
 
Jusque là ca va. Mais lorsque je passe à la deuxième facture, sur  
ma feuille Rapports le curseur se positionne sur la ligne suivante  
(macro) mais il place les nouvelles données toujours sur  
la première ligne. Donc je ne suis pas capable d'archiver mes données sur
la feuille Rapports.
 
Donc ce que je cherche c'est la manière d'ajouter une nouvelle ligne
sur Rapports et d'y inscrire les nouvelles données sur CETTE même ligne.
J'ai cherché partout, j'ai tout tenté mais là je ne sais plus quoi faire.
 
Merci de prendre le temps de me lire et bonne soirée. Il est 19h ici à
Montréal.
Michel

n°2335793
Prozac
Tout va bien
Posté le 23-02-2006 à 09:06:15  profilanswer
 

Comment fais tu le transfert vers la deuxième feuille ?
 
Pour trouver la dernière cellule sur une plage de cellule, tu peux faire quelque chose comme
range("A1" ).End(xlDown).Offset(1,0).Activate
 
(c'est équivalent à faire ctrl-fleche vers le bas sur une feuille excel)
 
ou si tu n'es pas sur que ta plage est continue (toutes les cellules ne sont pas forcement remplies, tu peux le prendre dans l'autre sens :
range("A65535" ).End(xlUp).Offset(1,0).Activate
 
 
est-ce le genre de chose qui t'aide ?


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2336648
michelexce​l
Posté le 23-02-2006 à 19:17:47  profilanswer
 

Merci pour ta réponse. Les opérations que j’effectue :
 
Facture--Transition---Rapports
 
Lorsque la facture est imprimée je clique le bouton Valider qui enclanche ce qui suit :
 
1) De ma facture, je copie 3 valeurs de ma facture (code_clien,nom_client, et No_Facture) Sur la feuille Transition de facon que ces valeurs soient sur une même ligne.
 
2) A partir de la feuille Transition, je transfert maintenant ces valeurs sur la feuille Rapports et le tout sur une même ligne (la
première ligne vide).
 
Pour cela je me positionne sur la première ligne vide de Rapports et je transfert.
 
Jusque là ça fonctionne mais il ne transfert que la première valeur.  
Et aussi où ça ne fonctionne pas c’est lorsque je refais toutes les étapes ci-haut mentionnées pour une nouvelle facture. Le transfert de Transition vers Rapports se fait mais malgré
que je me positionne sur la première ligne vide, mon programme ne veut rien savoir et copie ces valeurs
toujours sur la première ligne en écrasant les autres données.
 
Tu as compris qu’en fait la feuille Rapports a pour but de compiler toutes les factures pour que je puisse
par exemple, à la fin du mois, visualiser le nom des clients et le montant des factures.
 
Je t’inclus la macro utilisée pour le transfert des données de la feuille Transition vers la feuille Rapports
………………………………………….
Lorsque j'ai complété la facture et qu'elle est imprimée, je clique sur Valider qui contient ce qui suit:
 
Sub new_line()
Worksheets("rapports" ).Activate '// j'active la feuille Rapports
Cells(8, 4) = "rapports activée" '//va sur la dernière cellule vide
Range("A1" ).Select
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
Wend
Cells(8, 5) = "derniere ligne"
'// Maintenant copier les infos de la feuille transition qui sont sur cellules A2 B2 et C2  
'// vers la feuille Rapports
ActiveCell.Value = Sheets("facture" ).Range("a2:c2" ).Value
End Sub
 
Mais il ne transfert sur la feuille Rapports que A2 et ignore B2 et C2
 
J’espère que cela va te permettre d’allumer ma chandelle !
Je termine ici avant qu'on intitule ce message "Tome 1"  
Merci beaucoup
 

n°2336787
Prozac
Tout va bien
Posté le 23-02-2006 à 21:39:35  profilanswer
 

Le passage  
While IsEmpty(ActiveCell) = False  
ActiveCell.Offset(1, 0).Activate  
Wend  
 
correspond au bout de code que j'avais mis pour aller tout en bas. Ca devrait être plus rapide.
 
Et plutôt que terminer par activecell.value=blabla, (puisqu'il ne crée de valeur que pour la cellule active, qui est celle de la colonne A), tu devrais plutôt coller les valeurs (je suis sur mac, je peux pas t'aider pour la syntaxe exacte mais en enregistrant la séquence en macro, tu devrais pouvoir comprendre comment faire sans problème)
 en gros, ça ressemble à activecell.paste


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2337681
michelexce​l
Posté le 24-02-2006 à 17:05:53  profilanswer
 

merci pour les informations. Je vais tester ce soir et t'en donnerai des nouvelles
Michel

n°2338853
michelexce​l
Posté le 26-02-2006 à 00:28:13  profilanswer
 

J'ai tenté ta solution mais hélas cela ne fonctionne pas.
Si parfois tu avais une autre solution ça serait le bienvenu.
Merci et bonne soirée
Michel

mood
Publicité
Posté le 26-02-2006 à 00:28:13  profilanswer
 

n°2339024
Prozac
Tout va bien
Posté le 26-02-2006 à 11:46:43  profilanswer
 

Tu peux coller le nouveau code que tu as écrit ?


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2339420
michelexce​l
Posté le 26-02-2006 à 18:47:02  profilanswer
 

demain je serai chez-moi et je t'enverrai le code
A bientôt

n°2339769
michelexce​l
Posté le 27-02-2006 à 00:27:23  profilanswer
 

voici mon nouveau code:
Sub copyall()
'
' copyall Macro
' Macro enregistrée le 2006-02-26 par Michel
'
    Sheets("transition" ).Select ' on choisit la feuille "transition"
    Range("A2:F2" ).Select 'on select les cellules A2 à F2
    Range("F2" ).Activate
    Selection.Copy
    Sheets("rapports" ).Select
    Range("a2:F2" ).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, transpose:=False
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("C3" ), Order1:=xlDescending, Key2:=Range("B3" ) _
        , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
    Range("A9" ).Select   '// Ici il faut trouver la formule pour placer curseur à première ligne vide  
'// pour de nouvelles données (cumuler les données)
'
End Sub

n°2339838
Prozac
Tout va bien
Posté le 27-02-2006 à 08:41:05  profilanswer
 


Sub copyall()  
'  
' copyall Macro  
' Macro enregistrée le 2006-02-26 par Michel  
'  
    Sheets("transition" ).Select ' on choisit la feuille "transition"  
    Range("A2:F2" ).Select 'on select les cellules A2 à F2  
    Range("F2" ).Activate  
    Selection.Copy  
    Sheets("rapports" ).Select
    Range("a2" ).end(Xlup).offset(1,0).select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _  
        False, transpose:=False  
    Application.CutCopyMode = False  
    Selection.Sort Key1:=Range("C3" ), Order1:=xlDescending, Key2:=Range("B3" ) _  
        , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _  
        False, Orientation:=xlTopToBottom  
    Range("A9" ).Select   '// Ici il faut trouver la formule pour placer curseur à première ligne vide  
'// pour de nouvelles données (cumuler les données)  
'  
End Sub


 
Essayes comme ça


Message édité par Prozac le 27-02-2006 à 08:41:22

---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
n°2340421
michelexce​l
Posté le 27-02-2006 à 17:15:08  profilanswer
 

d'accord je l'essaie et je te donnerai le résultat. Merci beaucoup pour ton aide je l'apprécie vraiment
Michel

n°2340838
michelexce​l
Posté le 27-02-2006 à 21:40:52  profilanswer
 

Bonjour. Helas cela n'a rien changé. Mais entretemps j'ai eu un message de Galopin01 de ce même forum et son code fonctionne super bien. Je te transmet son code afin que tu puisses des fois l'utiliser si tu en as besoin: Merci beaucoup pour ton aide. Je l'apprécie beaucoup et c'est plaisant de voir l'entraide qu'il y a ici sur ce forum. Encore une fois merci pour tout le trouble que tu t'es donné.
 
Code :
 
Sub Test()    i = Sheets("Rapports" ).Cells(65535, 1).End(xlUp).Row    Sheets("transition" ).Range("A2:F2" ).Copy    Sheets("Rapports" ).Range("A" & i + 1).PasteSpecial Paste:=xlValues    Application.CutCopyMode = False    ' Cette macro ne fait aucune sélection et n'active rien    ' A toi de faire ton tri ensuite...    ' Sur cette ligne tu pourrais appeler une sous macro  : TriEnd Sub  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Excel ajout d'une ligne automatiquement

 

Sujets relatifs
Ouverture Fichiers Excel et wordprobleme avec les antivirus en ligne
Bizarrerie dans "ajout suppression de programme"20 onglet omnipage dans excel
Le Sagem Fast 800 USB fonctionne-t-il sur une ligne Alice dégroupée ?[ms access] export d'état dans excel
ligne éligible mais fonctionnel?2 FAI sur la même ligne
Dégroupage sur ligne inactive: des expériences?Excel - recherche fichier
Plus de sujets relatifs à : Excel ajout d'une ligne automatiquement


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