IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-97] Plusieurs questions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut [E-97] Plusieurs questions
    Bonjour,

    j'ai beaucoup de questions à poser.

    La 1ère : Où est le problème dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Sub transpose_dans_tableau()
    'Atteindre le formulaire et mémoriser les données
        Sheets("Formulaire").Select
        Range("B1:B18").Select
        Selection.Copy
    'Test pour déterminier la ligne où coller les infos
        Sheets("Base de données").Select
        valeurA2 = Range("A2").Value
        If valeurA2 = "" Then
        Range("A2").Select
        Else
        Range("A1").Select
        Selection.End(x1Down).Select
        ligne_active_base = ActiveCell.Row
        Range("A" & ligne_active_base + 1).Select
        End If
    'Mémorise 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, _  le problème est 
        Operation:=x1None, SkipBlanks:=False, Transpose:=True   sur cette ligne
    'Rendre vierge le formulaire
        Sheets("Formulaire").Select
        Range("B1:B18").Select
        Selection.ClearContents
        Range("B1").Select
    'Retourner dans le tableau
        Sheets("Base de données").Select
        Range("A1").Select
    End Sub
    2ème question: ce code sert à remplir ma bases, comment faire pour qu'il puisse accepter des champs vide?

    3ème question: comment passer de mon formulaire créer de toutes pièce sur une feuille excel à un joli formulaire en vb?

    4ème question: Comment rendre incassable un classeur?

    5ème est dernière question (pour le moment); Comment lier un bouton à une feuille donnée?

    Merci.
      0  0

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Citation Envoyé par Chicard Voir le message
    La 1ère : Où est le problème dans ce code
    bonne question, qui en appelle une autre : qu'est ce qu'il est cessé faire et qu'il ne fait pas ?
    Citation Envoyé par Chicard Voir le message
    3ème question: comment passer de mon formulaire créer de toutes pièce sur une feuille excel à un joli formulaire en vb?
    voir le tutorial sur les userform

    Citation Envoyé par Chicard Voir le message
    4ème question: Comment rendre incassable un classeur?
    Coule le dans le béton
    Que veux-tu dire par là ?
      0  0

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Pour ta question N°1, je dirais que dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Selection.PasteSpecial Paste:=x1PasteAllExceptBorders, _  le problème est 
        Operation:=x1None, SkipBlanks:=False, Transpose:=True   sur cette ligne
    Tu dois plutôt mettre des l (la lettre l minuscule) à la place des 1 (le chiffre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _  le problème est 
        Operation:=xlNone, SkipBlanks:=False, Transpose:=True   sur cette ligne
    Pour ta question 2, ce code recopie des données vers une feuille pas une base...
    Pour ta question 3, à la main
    Pour ta question 4, incassable? heu? mais encore? Si tu veux dire par là empêcher les modifications, regardes l'aide sur protect
    Pour ta question 5, comment ça lié?
      0  0

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Déjà merci pour la réponse au niveau du code (test demain).

    Même s'il n'est pas fait pour ça Excel peut faire office de base de données ( c'est un bouquin sur excel qui le dit). Mais la seconde question reste entière. Effectivement le code vba sert à remplir ma bases mais apparemment il n'apprécie pas le fait d'avoir des champs vide.

    pour la 3 je rique de galérer mais on tentera, la 4 j'ai vu le protect mais la encore faut que je pousse un peu plus pour voir (je veux ne pas pouvoir écrire là où je veux).

    Pour la 5 -> en fait, je fait 2 boutons (par ex recherche et formulaire). Je veux que quand je clique sur formulaire il me mette sur la feuille du formulaire. Je suppose qu'une macro doit pouvoir faire ça mais je ne sait pas faire de vba).

    En espérant avoir été plus "clair" (ou précis).
      0  0

  5. #5
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,

    Un peu plus de détail :

    Pour faire de la copie d'une ligne entière, le code donner plus haut devrait fonctionner, mais si tu veux copier juste une cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil2.cells(ligne2,colonne2)=feuil1.cells(ligne1,colonne1)
    Pour les formulaires (plutôt appelé Userform sous xl), je te conseil de t'y pencher si tu as un peu de temps, cela te donnera facilement une interface plus convivial et sécurisé qu'une feuille xl.

    Ensuite les boutons :
    Il faut d'abord définir ou tu va mettre tes boutons, soit sur un userform soit directement sur une feuille.
    Si tu choisit pour commencer de le faire sur une feuille, place toi en mode "création" (dans la barre d'outils "boite à outils contrôles" ou "visual basic", l'icône avec une règle et une équerre)
    Insère un bouton via la barre d'outil contrôles, puis clic droit sur celui-ci > "visualiser le code".
    Tu auras alors un sub d'ouvert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
        feuilformulaire.Activate
    End Sub
    avec feuilformulaire la feuille a faire apparaître et .activate pour montrer la feuille que tu veux.

    Pour modifier ton bouton, clic droit>propriété...

    Tout ceci devrait te permettre de commencer, maintenant explore les tutorials sur vba ainsi que les FAQ.
      0  0

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Effectivement le "l" à régler mon problème sur l'exécution de ma macro mais en a soulevé une autre (comme souvent): ma macro s'exécute mais ma base reste vide.

    Je ne vois pas pourqoui elle ne se rempli pas. Une idée sur la question?
      0  0

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Essaie en évitant les Select :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub transpose_dans_tableau()
        Dim ligne_active_base As Long
        'Atteindre le formulaire et mémoriser les données
        Sheets("Formulaire").Range("B1:B18").Copy
        'Test pour déterminier la ligne où coller les infos
        If Sheets("Base de données").Range("A1").Value = "" Then
            ligne_active_base = 1
        Else
            ligne_active_base = Sheets("Base de données").Range("A:A").Find("").Row
        End If
        'Collage avec transposition
        Sheets("Base de données").Range("A" & ligne_active_base).PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        'Rendre vierge le formulaire
        Sheets("Formulaire").Range("B1:B18").ClearContents
    End Sub
      0  0

Discussions similaires

  1. plusieurs questions pour un programme sous access
    Par micco dans le forum Access
    Réponses: 2
    Dernier message: 06/04/2006, 20h22
  2. Plusieurs questions sur Samba sous Ubuntu
    Par Niktou dans le forum Réseau
    Réponses: 12
    Dernier message: 12/02/2006, 16h45
  3. [Py2exe] Plusieurs questions...
    Par Arthur17 dans le forum Py2exe
    Réponses: 4
    Dernier message: 17/11/2005, 23h41
  4. J'ai plusieur question pr windows 2000
    Par Guixx dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 10/09/2005, 19h23
  5. Réponses: 4
    Dernier message: 11/09/2004, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo