j'ai besoin de votre aide.
J'ai un fichier avec une feuille pour les factures et une pour le suivi.
J'ai un problème avec #valeur qui s'affiche dans les cellules qui n'ont pas de données alors que je voudrais que rien ne s'affiche
d'autre part je veux récupérer certaines données dans la feuille suivi mais je ne sais comment faire. je ne veux pas que les données s'effacent à chaque saisie.
bonjour à tous deux
corrigé formule sur feuille facture
fait une petite routine pour transféré les données
bouton de commande sur feuille facture
à bientôt [file name=facturemunici_20050704174317.zip size=12007]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/facturemunici_20050704174317.zip[/file]
Abel je te remercie beaucoup pour ta réponse. En fait je n'avais pas pensé aux <>. Pour cette partie c'est bon ça marche au poil.
Mais pour l'autre partie de la question tu n'aurais pas idée à me suggérer?
Encore merci
:huh: :huh:
Oups pardon Berbere je n'avais pas vu ta réponse, ça m'apprendra à ne pas rafraîchir avant de poster.
J'étudie ta réponse et je te tiens au courant
Bebere je te remercie, c'est tout à fait ce que je recherchais.
Est-ce que tu penses que ce transfert pourrait se faire lors de la fermeture du fichier sans passer par un bouton?
On peut pour cette dernière question, utiliser une macro évènementielle, je conseille before Save, au moins on est sur que c'est au moment où l'on sauve que l'on 'transfert'
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Transfert
End Sub
Code à Placer dans le Private Module de 'ThisWorkBook'
Peut être aussi une Phase de test avant le Code 'Transfert' Avec des Tests si les champs sont vides :
PrivateSub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Verrou AsBoolean
With Sheets('Facture')
If .Range('A4') = '' Then
MsgBox 'Champs NOM Non-Rempli'
Verrou = True
EndIf
If .Range('B5') = '' Then
MsgBox 'Champs date distribution Non-Rempli'
Verrou = True
EndIf
EndWith
Cancel = Verrou If Verrou = FalseThen Transfert EndSub
Juste pour vous dire que pour l'instant mon fichier tourne bien.
Je vous remercie de votre aide.
Je vais terminer mon application et je reviendrai via ce post si j'ai un autre problème
Je reviens avec mon fichier car j'ai un petit problème que j'espère vous pourrez m'aider à résoudre.
Le problème vient de la macro pour transférer les données.
J'utilise l'instruction: ligne = .Range('A65536').End(xlUp).Row
pour avoir la dernière ligne. Mais chaque fois que je transfère des données ça me remplace la dernière ligne ajoutée en l'occurence la première.
Par contre si je transfère la première ligne avec: ligne = .Range('A65536').End(xlUp).Row et que je modifie ensuite l'instruction en remplaçant A65536 par B65536 et bien ça me transfert bien les autres lignes correctement.
Si quelqu'un peut m'expliquer pourquoi, ça serait sympa
:huh: :huh:
PS Je joins mon fichier [file name=Classeur2_20050706140924.zip size=17123]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_20050706140924.zip[/file]
En colonne 'A', il n'y a rien sauf en A9.
Lorsque tu inscris les informations, tu te positionnes dans la dernière ligne où il y a quelque chose (la première en partant du bas, en fait) + 1 ligne.
Donc, à chaque fois tu inscris à partir de la ligne 10.
Quand tu cherches sur la colonne 'B', il y a déjà 'Mairie de machin' inscrit. Donc, xlUp + 1 ligne se positionne correctement.
Soit tu cherches la dernière ligne sur la colonne 'B', soit on imagine que la colonne 'A' sert à mettre un numéro d'enregistgrement (par exemple) ce qui pourrait donner ça :
Code:
If ligne = 9 Then
Range('a' & ligne).Offset(1, 0).Value = 1
Else
Range('a' & ligne).Offset(1, 0).Value = Range('a' & ligne).Value + 1
End If
A mettre avant End Sub par exemple. Et bien sûr, ce petit tableau ne doit plus changer de place sinon il faut trouver une astuce pour déterminer la position de la toute première ligne.