XL 2016 Renvoyer la valeur de la cellule du dessous

Lemontine

XLDnaute Nouveau
Bonjour !

Tout d'abord, je tiens à préciser que je suis d'une totale crasse concernant macro et VBA, j'arrive à adapter certains codes simples mais lorsqu'il s'agit de créer mes propres outils, je galère ! Par ailleurs, je dois aussi tenir compte des utilisateurs de l'outil. Il faut que le fichier reste simple... et solide.

Voici ce que j'essaye de de fabriquer : un fichier qui stocke les données des factures émises par la société.

Pour ce faire, j'ai commencé par créer un modèle de facture.
Les utilisateurs ont l'habitude de commencer par donner un numéro de facture basée sur la date du jour, donc j'ai préféré en faire une donnée à ajouter manuellement.
Ensuite, ce que je cherche à faire, c'est reporter les données "Date facture";"Client";"N° facture";"Imputation projet";"Montant HT";"Montant TTC" dans l'onglet "Facturier FX".

J'ai créé une macro, mais j'ai oublié que les utilisateurs vont probablement rajouter/enlever des lignes selon les échéances à indiquer, selon qu'il y aura ou non une remise, etc. Nous sommes une toute petite structure, et chaque facture est une œuvre d'art :-D (je ne vous parle pas de nos devis...)

Bref, du coup, je me suis dit que le haut de la feuille n'allait pas poser de problème, car j'ai prévu suffisamment de "champs", par contre, pour récupérer le montant HT et TTC, c'est une autre paire de manches.

C'est là où j'ai besoin d'aide : je voudrais pourvoir dire à excel, dans la plage de valeur B28:B50 (c'est la plage qui va probablement avoir des lignes insérées, ou supprimées selon moi) , si tu trouve "TOTAL HT", renvoie moi la valeur de la cellule du dessous, et idem pour "TOTAL TTC".

Merci pour vos conseils, aide, :)
 

Pièces jointes

  • Facturier_Essai_CS.xlsb
    135.4 KB · Affichages: 25

GALOUGALOU

XLDnaute Accro
dans la macro ventilation

remplacer le nom de l'onglet (en gras deux fois), en respectuant scrupuleusement les espaces et la casse.
pour le bouton je pense que vous savez le gérer.


Sub ventilation()
Sheets("Facturier FXessai").Select

li = Sheets("ADMIN").Cells(5000, 1).End(xlUp).Row ' a partir de la ligne 500 TROUVE LA 1ER CELLULE VIDE EN REMONTANT DANS LA COLONNE 7 (G)
ligne = Sheets("Facturier FXessai").Cells(5000, 1).End(xlUp).Row + 1
For i = 1 To li

If UCase(Sheets("ADMIN").Range("I" & i)) = "VRAI" Then

Cells(ligne, 1) = Sheets("ADMIN").Cells(i, 1)
Cells(ligne, 2) = Sheets("ADMIN").Cells(i, 2)
Cells(ligne, 3) = Sheets("ADMIN").Cells(i, 3)
Cells(ligne, 4) = Sheets("ADMIN").Cells(i, 4)
Cells(ligne, 5) = Sheets("ADMIN").Cells(i, 5)
Cells(ligne, 6) = Sheets("ADMIN").Cells(i, 6)

ligne = ligne + 1
End If
Next
MsgBox ("modifications effectuées")
Sheets("Facturier FXessai").Select
Range("A1").Select
End Sub

cordialement
galougalou
 

Lemontine

XLDnaute Nouveau
Bon, je me demande si ce que je veux faire est possible dans excel... Car en réalité, je veux copier des infos qui vont apparaître sur un onglet "futur".
J'ai refait un test video:

Et j'ai modifié comme vous me l'avez suggéré ("Facturier FXessai") par ("Modèle FACTURE FX (2)")
 

GALOUGALOU

XLDnaute Accro
plus rapide que prévu !
on va décomposer
dans vba, feuil5 correspond à votre nom d'onglet (vérifiez et modifiez si besoin)

j2 recupération nom client (à adapter à vos besoins

F16 n° de facture
l'enregistrement à lieu à l'endroit ou se trouve le classeur excel

Sub Macro1()

Feuil5.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Range("j2") & "_" & Range("F16") & ".pdf"

End Sub

associer avec un bouton

petite précision je n'ai aucune formation en informatique, aussi,verifiez bien l'information de ce post, je n'ai jamais eu l'occasion de mettre cette solution à l'épreuve
cordialement
galougalou
 

Discussions similaires