Macro excel : formulaire et base de données

carosempe -  
 ccinfo -
Bonjour à tous,

J'ai un formulaire excel relié à une base de données excel par une macro que j'ai créée grâce à l'enregistreur de macro.
Cette macro me permet de coller les éléments saisis dans mon formulaire sur ma base de données.

Le problème est que ces infos se collent uniquement sur la première ligne de ma base de données au lieu de s'intégrer les unes en dessous des autres.
Je suppose qu'il manque quelquechose dans ma macro permettant de faire cela mais je ne sais pas quoi.

Voici mon code:

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/01/2008 par SARRUS-TEINTURIER
'

'
Range("B10:B12").Select
Selection.Copy
Sheets("Données").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
Range("N10:P10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Saisie").Select
Range("B16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
ActiveWindow.SmallScroll ToRight:=-6
Range("B10").Select
ActiveSheet.Paste
Sheets("Saisie").Select
Range("B17").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
Range("A10").Select
ActiveSheet.Paste
Sheets("Saisie").Select
Range("B18:B26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Données").Select
Range("E10:M10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A11").Select
Sheets("Saisie").Select
Range("B10:B12,B16:B26").Select
Range("B16").Activate
Application.CutCopyMode = False
Selection.ClearContents
End Sub

Merci pour votre aide

Caro
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. touyou23
     
    il faut a un moment donné que tu insère le nombre de lignes correspondant au nombre de lignes de ta table source dans ta table de destination si tu veux pouvoir conserver les données précédentes.

    Essaye de réenregistrer ta macro en faisant ca...
    16
  2. jolie17
     
    Va voir cet article il donne le code VBA qui correspond à ton besoin:

    https://www.01net.com/actualites/
    2
    1. pang
       
      Je ne connais vraimant rien en programmation. et encore mois visual basic. j'ai suivie la demarche maios la macro présent une erreur a la ligne:
      Selection.PasteSpecial Paste:=x1PasteAllExceptBorders, Operation:=x1None, SkipBlanks:=False, Transpose:=True
      Que faire? merci
      0
  3. YATA
     
    Sub transpose_dans_tableau()
    Sheets("formulaire client risqués").Select
    Range("B1:B16").Select
    Selection.Copy
    Sheets("base de données client risqués").Select
    VALEURA2 = Range("A2").Value
    If VALEURA2 = "" Then
    Range("A2").Select
    Else
    Range("A1").Select
    Selection.End(xlDown).Select
    ligne_active_base = ActiveCell.Row
    Range("A" & ligne_active_base + 1).Select
    End If
    ligne_active_base = ActiveCell.Row
    ActiveSheet.Range("A" & ligne_active_base + 1").Select
    ActiveSheet.Paste

    Skipblanks:=False_, Transpose:=True
    Sheets("formulaire").Select
    Range("B1:B16").Select
    Selection.ClearContents
    Range("B1").Select
    Sheets("base de données client risqués").Select
    Range("A1").Select

    End Sub
    2
    1. ODILE
       
      ActiveSheet.Range("A" & ligne_active_base + 1").Select

      et

      Skipblanks:=False_, Transpose:=True


      s'affichent en rouge ... :(

      message d'eereur: erreur de compilation, erreur de syntaxe
      0
  4. sousou
     
    j'ai besoin des informations concernant les formulaires et les bases de données en excel
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. carosempe
     
    Bonjour,

    Pour ma table de destination ce sera ma base de données, mais qu'entends-tu par table source ?

    Merci pour votre aide

    Amicalement

    Caro
    0
  7. ODILE
     
    j'ai le meme problème,
    as tu eu une réponse depuis???
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,
      Formulez votre question concernant votre problème, vous aurez une réponse plus adaptée.
      0
  8. ODILE
     
    Dans le meme style que précédemment, j'essaie de créer une base de données excel.
    Mon tableau de ba se de données me convient parfaitement,
    en revanche j'essaie de créer un formulaire de saisie sur une autre feuille (il y aura plusieurs utilisateurs de cette base)

    j'ai saisi le code proposé par le site 01.net,

    Sub transpose_dans_tableau()
    Sheets("formulaire client risqués").Select
    Range("B1:B16").Select
    Selection.Copy
    Sheets("base de données client risqués").Select
    VALEURA2 = Range("A2").Value
    If VALEURA2 = "" Then
    Range("A2").Select
    Else
    Range("A1").Select
    Selection.End(xlDown).Select
    ligne_active_base = ActiveCell.Row
    Range("A" & ligne_active_base + 1).Select
    End If
    ligne_active_base = ActiveCell.Row
    Range("A" & ligne_active_base).Select
    Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
    Skipblanks:=False_, Transpose:=True
    Sheets("formulaire").Select
    Range("B1:B16").Select
    Selection.ClearContents
    Range("B1").Select
    Sheets("base de données client risqués").Select
    Range("A1").Select

    End Sub

    MAIS il semble qu'il y ai une erreur... ca ne fonctionne pas
    message d'erreur: "l'indice n'appartient pas à la selection"
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,
      Question : pourquoi tester A2 dans la base de données?
      A1 est "non vide"?
      Tu dois copier B1:B16 de ta feuil formulaire vers la première ligne vide de ta feuil base de donnée, c'est bien ça?
      Alors plus simplement :

      Sub transpose_dans_tableau()
      Sheets("formulaire client risqués").Range("B1:B16").Copy
      Sheets("base de données client risqués").Select
      ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
      Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
      Skipblanks:=False_, Transpose:=True
      ActiveSheet.Range("A1").Select
      Sheets("formulaire client risqués").Range("B1:B16").ClearContents
      End Sub
      0
  9. YATA
     
    Bonjour,
    a quelle ligne se trouve ton erreur !
    pour le copié collé ! essaie :
    ActiveSheet.Range("A" & ligne_active_base + 1").Select
    ActiveSheet.Paste
    0
    1. ODILE
       
      je met ca ou? désolée,... je m'initie a VBA
      0
  10. bibu06
     
    quelqu'un a trouver une solution à ce problème ?

    voici mon code j'ai le même problème:

    Sub transpose_dans_tableau()
    'Atteindre le formulaire et mémoriser les donnée
    Sheets("formulaire").Select
    Range("B1:B3").Select
    Selection.Copy
    'Test pour déterminer la ligne où coller les infos dans le tableau
    Sheets("base de donnée").Select
    valeurA2 = Range("A2").Value
    If valeurA2 = "" Then
    Range("A2").Else
    Else
    Range("A1").Select
    Selection.End(xlDown).Select
    ligne_active_base = ActiveCell.Row
    Range("A" & ligne_active_base + 1).Select
    End If
    'Memorise le n° de la ligne où coller les données
    ligne_active_base = ActiveCell.Row
    'Collage avec transposition
    Range("A" & ligne_active_base).Select
    Selection.PasteSpecial Paste:=x1PasteAllExceptBorders,
    Operation:=x1None, SkipBlanks:=False, Transpose=True

    'Rendre vierge le formulaire
    Sheets("formulaire").Select
    Range("B1:B3").Select
    Selection.ClearContents
    Range("B1").Select
    'Retourner dans le tableau
    Sheets("Base de données").Select
    Range("A1").Select
    End Sub

    Les ligne en gras en rouge dans visual et il me dise:

    Message d'erreur : "Erreur de compilation:
    Attendu: Expression"

    Merci pour votre aide

    Cordialement,

    Bibu06
    0
    1. pilas31 Messages postés 1878 Statut Contributeur 648
       
      Bonjour,

      J'ai déjà corrigé cette erreur dans le forum il y a quelque temps.
      il faut remplacer les 1 (le chiffre 1) par la lettre L dans x1None et x1PasteAllExceptBorders

      A+
      0
    2. ccinfo
       
      Bonsoir, je rencontre le problème suivant : En lançant le pogramme l'erreur suivant s'affiche 'Erreur d'éxécution '9' L'indice n'appartient pas à la selection

      Merci pour l'aide
      0