Collecter des données sous Excel

Y

Yann14

Guest
Bonjour à Tous
Je réalise actuellement un petit programme permettant le calcul des droits de succession et autres impots. Je rencontre un problème concernant le stockage de mes données sur Excel.
Voici comment j'ai procédé:
J'entre les infos dans une 1ere feuille (N° dossier, nom client...) que l'on appellera "Saisie". Les infos se retrouvent dans le tableau d'une seconde feuille "BD1" au N° de dossier corespondant. Ensuite, et c'est là que je rencontre mon problème, j'effectue un collage spécial sans copier les cellules vides sur une troisième feuille, qui sera ma base de données définitive. Le problème est que mes anciennes données se retrouvent tout de meme effacées malgré le collage spécial.
Q°: Auriez vous une méthode pour copier mon tableau BD1 sur BD sans effacer les infos existantes? Ou avez vous un autre moyen de réaliser un base de données sous Excel?

Autres infos: Mon niveau Excel est très moyen. Je n'est aucune connaissance Visual Basic, ni Access.
Version: Excel 97.

Merci d'avance
 
B

Bernard

Guest
Bonsoir Yann14

Je vois que tu utilises BD1 comme feuille de transit intermédiaire.

Si tu veux transferer les informations directement de la feuille saisie à la feuille BD, saches que cela est très simple à réaliser par macro.

Si par contre tu utilises BD1 dans un but prècis, il est également très simple de réaliser ce que tu as expliqué dans le détail.

Précises nous tes besoins et nous essaierons de trouver une bonne façon de le réaliser.

Cordialement

Bernard
 
Y

Yann14

Guest
C OK
J'ai la réponse à ma question
Si cela interesse quelqu'un je joins la macro

La macro permet de n'utiliser que deux feuille : une de saisie et une de BD.
La première macro sert à enregistrer les info et la seconde à rechercher les infos dans la BD.

Merci à vous de vous être pencher sur mon PB

Public Sub Nouveau()
Dim LigneVide As Integer
Dim PremLigne As Integer
Dim Ligne As Integer
Dim MaFeuille As String

Rem Nom de la feuille des données
MaFeuille = "BD"

LigneVide = ActiveWorkbook.Sheets(MaFeuille).UsedRange.Rows.Count + 1
PremLigne = 2

Ligne = PremLigne
While ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value <> ActiveWorkbook.ActiveSheet.Cells(6, 3).Value And Ligne < LigneVide
Ligne = Ligne + 1
Wend

If ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value <> ActiveWorkbook.ActiveSheet.Cells(6, 3).Value Then
MsgBox ("Nouveau")
Else
MsgBox ("Modifier")
End If

Rem Numero
ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value = ActiveWorkbook.ActiveSheet.Cells(6, 3).Value
Rem Nom
ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 3).Value = ActiveWorkbook.ActiveSheet.Cells(8, 3).Value
Rem Prenom
ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 4).Value = ActiveWorkbook.ActiveSheet.Cells(9, 3).Value
Rem Adresse
ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 5).Value = ActiveWorkbook.ActiveSheet.Cells(10, 3).Value


End Sub






Public Sub Recherche()
Dim LigneVide As Integer
Dim PremLigne As Integer
Dim Ligne As Integer
Dim MaFeuille As String

Rem Nom de la feuille des données
MaFeuille = "BD"

LigneVide = ActiveWorkbook.Sheets(MaFeuille).UsedRange.Rows.Count + 1
PremLigne = 2

Ligne = PremLigne
While ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value <> ActiveWorkbook.ActiveSheet.Cells(6, 3).Value And Ligne < LigneVide
Ligne = Ligne + 1
Wend

If ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value <> ActiveWorkbook.ActiveSheet.Cells(6, 3).Value Then
MsgBox ("Le dossier n'existe pas")
Else
Rem Numero
ActiveWorkbook.ActiveSheet.Cells(6, 3).Value = ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 2).Value
Rem Nom
ActiveWorkbook.ActiveSheet.Cells(8, 3).Value = ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 3).Value
Rem Prenom
ActiveWorkbook.ActiveSheet.Cells(9, 3).Value = ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 4).Value
Rem Adresse
ActiveWorkbook.ActiveSheet.Cells(10, 3).Value = ActiveWorkbook.Sheets(MaFeuille).Cells(Ligne, 5).Value
End If

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 061
Membres
103 447
dernier inscrit
DamD