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 :

input tableau- Calcul-output tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    architecture navale
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : architecture navale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut input tableau- Calcul-output tableau
    Bonsoir a tous!

    çà y est je craque et demande humblement votre aide... j ai certainement pas compris un truc évident, je débute désolé

    voila mon problème:

    j ai une colonne (N) avec mes inputs je souhaiterai automatiser le calcul qui est sur le reste de ma feuille et coller trois résultat a coté de mes inputs.

    input de N7 a N31 en D7

    résultats du calcul en K14,K15 et G17

    copie des résultats dans les colonne O,P,Q de 7 a 31.



    voila ce que j ai fait en regardant des tutos et message sur les forum et.....ça marche pas


    merci de votre aide
    par ailleurs si vous connaissez des tutos pour automatiser des calcul et itération je suis preneur!


    Aurevoir

    Vincent

    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
    Sub Macro7()
    '
    ' Macro7 Macro
    '
     
    '
    For x = 7 To 31 Step 1
     
        cells("D7") = cells("N", x)
        Range("K14").Select
        Selection.Copy
        Range("O", x).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("K15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("P", x).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("G17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("Q", x).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    Next x
     
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Pour une référence à une cellule on utilise Range(ReferenceTexte) ou Cells(Ligne,Colonne) ligne et colonne étant des nombres
    Il faudrait donc ecrire pour cells("D7") = cells("N", x)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cells(7,4) = Cells(x,14)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("D7") = Cells(x,14)
    et pour Range("P", x).Select
    mais on peut aussi ecrire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("P" & Cstr(x) )
    Dans ce cas on transforme en texte la référence de la cellule

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonsoir,

    As-tu essayé plus simplement avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Sub Macro7()
    Dim Ligne As Long 'N° de ligne
        With Worksheets("Feuil1") 'A adapter
        For Ligne = 7 To 31
            .Range("D7") = .Cells(Ligne, "N")
            .Cells(Ligne, "O") = .Range("K14").Value
            .Cells(Ligne, "P") = .Range("K15").Value
            .Cells(Ligne, "Q") = .Range("G17").Value
        Next Ligne
        End With
    End Sub
    Cordialement.

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    architecture navale
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : architecture navale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut
    bonsoir,

    merci beaucoup pour vos réponses très instructives.
    Elles fonctionnent toutes les deux la seconde étant plus rapide à résoudre.

    j ai quelques questions concernant seconde technique pourriez vous m expliquer la fonction Dim....as long et l utilité de with worksheet...

    Par ailleurs si je souhaitais copier les infos dans une autre feuille comment aurais je pu faire?

    Concernant la première que signifie la fonction & Cstr... ?


    Merci encore et bonne soirée

    vincent

  5. #5
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour, bonsoir ou bonne nuit, c'est selon ...,

    pourriez vous m expliquer la fonction Dim....as long et l utilité de with worksheet...
    Concernant Dim , tu peux lire dans l’aide : l’instruction Dim déclare des variables et attribue de l'espace de stockage.
    Le type de variable précise le type de la valeur stockée par la mémoire. Ainsi, le type « Long » est utilisé pour un entier compris entre -2 147 483 648 et 2 147 483 647.
    Il est important d’attribuer un type adapté pour éviter de mobiliser inutilement la mémoire.

    Concernant With, tu peux lire dans l’aide : l'instruction With permet d'appliquer une série d'instructions à l'objet indiqué, sans qualifier à chaque fois le nom de l'objet.
    Ainsi, la série d’instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Worksheets("Feuil1")
       .Range("D7") = .Cells(Ligne, "N")
       .Cells(Ligne, "O") = .Range("K14").Value
       .Cells(Ligne, "P") = .Range("K15").Value  
       .Cells(Ligne, "Q") = .Range("G17").Value
    End with
    est équivalente à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Worksheets("Feuil1").Range("D7") = Worksheets("Feuil1").Cells(Ligne, "N")
    Worksheets("Feuil1").Cells(Ligne, "O") = Worksheets("Feuil1").Range("K14").Value
    Worksheets("Feuil1").Cells(Ligne, "P") = Worksheets("Feuil1").Range("K15").Value  
    Worksheets("Feuil1").Cells(Ligne, "Q") = Worksheets("Feuil1").Range("G17").Value

    Par ailleurs si je souhaitais copier les infos dans une autre feuille comment aurais je pu faire?
    Une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Worksheets("Feuil1")
    Worksheets("Feuil2").Range("D7") = .Cells(Ligne, "N")
    Worksheets("Feuil2").Cells(Ligne, "O") = .Range("K14").Value
    Worksheets("Feuil2").Cells(Ligne, "P") = .Range("K15").Value  
    Worksheets("Feuil2").Cells(Ligne, "Q") = .Range("G17").Value
    End with
    que signifie la fonction & Cstr dans Range("P" & Cstr(x) ) ?
    X représente le numéro de ligne, par exemple 12.
    Cstr(x) permet de convertir la valeur numérique 12 en chaine de caractère "12".
    & permet de concaténer les 2 chaines de caractères "P" et "12".
    Range("P" & Cstr(x) ) se traduit donc : Range("P12")

    Cordialement.

Discussions similaires

  1. [E-03] cacher un champ calculé de Tableau croisé dynamique
    Par Access Newbie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2008, 15h52
  2. Calcul dans tableau
    Par guigui69 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/10/2008, 12h10
  3. Calcul sur tableau bidimensionnel
    Par DiamonDonald dans le forum VB.NET
    Réponses: 11
    Dernier message: 23/06/2008, 16h19
  4. Réponses: 6
    Dernier message: 24/11/2007, 18h48
  5. Réponses: 10
    Dernier message: 19/01/2006, 06h41

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