Création base de données à partir d'un tableaux

Bonjour,

Je me retrouve dans une sacré situation, je possède des tableaux à plusieurs colonnes (voir fichier), et je viens de me rendre compte qu'il est nécessaire pour que je les analyse que je créée une base de données à partir de ce premier tableur sous forme présence absence.

Je m'explique : il s'agit d'observations comportementales, et la colonne nbcom correspond au nombre d'abeilles observée selon la modalité, le jour, la répétition et le test, le nb introd correspond au nombre d'abeille introduit dans la ruche à J0 et par modalités.

J'aimerai avoir une ligne par abeille introduite, avec une colonne observation : vue (1) et non vue (0).

A voir ce premier tableau, si je le fais a la main (et même en étant rapide) je pense en avoir pour un temps monstre.

Si quelqu'un a la clé de ce problème je lui en serait très reconnaissante.

27datapropobs.zip (5.28 Ko)

bonjour avelghe,

comment identifie t on individuellement chaque abeille dans les données fournies?

elles ne sont pas identifiées individuellement, je sais juste que sur 40 abeilles de modalité A introduits, j'en ai vu 3 pour J0, répétition 1 de l'après-midi et pour le test 17/167..


Mais il est toujours possible de leurs donner un code de 1 à x (nb d'introduit) par exemple.

J'ai commencé à remplir cela à la main, et je me persuade qu'il existe une autre solutions...

Bonjour,

Avec une macro excel :

Sub Abeilles()
Const C% = 8         'Nombre de colonnes source
Dim S As Worksheet   'Feuille source
Dim D As Worksheet   'Feuille destination
Dim Ls As Long       'Ligne source
Dim Ld As Long       'Ligne destination
Dim A As Integer     'Abeille

  Set S = Worksheets(1)
  Set D = Worksheets(2)
  'Titres
  D.Cells(1, "A").Resize(1, C).Value = S.Cells(1, "A").Resize(1, C).Value
  D.Cells(1, "A").Offset(0, C).Value = "Abeille"
  D.Cells(1, "A").Offset(0, C + 1).Value = "Obs"
  'Créer 1 ligne par abeille
  Ls = 2
  Ld = 2
  Application.ScreenUpdating = False
  Do While S.Cells(Ls, "F").Formula <> ""
    For A = 1 To S.Cells(Ls, "F").Value
      D.Cells(Ld, "A").Resize(1, 8).Value = S.Cells(Ls, "A").Resize(1, 8).Value
      D.Cells(Ld, "A").Offset(0, C).Value = A
      Ld = Ld + 1
    Next A
    Ls = Ls + 1
  Loop
  Application.ScreenUpdating = True

End Sub

Bonjour Patrice,

Je vous remercie mille fois du temps donné, c'est vraiment généreux, c'est parfait cela me fait gagner un temp monstre, vous contribuez ainsi à la protection des abeilles !

Puis-je abuser de cette gentillesse ? Je n'ai jamais réalisé de macro sur excel, j'aimerai pouvoir reproduire la démarche sur d'autre tableau du même "style". Avez-vous un site ou quelques instructions pour pouvoir grâce à votre code reproduire cela ?

Mille merci,

amicalement,

Angèle.

J'ai réussi ! Avec quelques forum, de la logique, j'ai réussi à reproduire le code sur mes autres tableur !

Merci encore !

Angèle

Rechercher des sujets similaires à "creation base donnees partir tableaux"