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 :

utilisation des alias [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut utilisation des alias
    Bonjour à tous

    sur un fichier, avec plusieurs formulaire j'utilise régulièrement ce type de ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sheets("operation de tresorerie").Range("a65536").End(xlUp).Offset(1, 0) = nstock
    Sheets("operation de tresorerie").Range("b65536").End(xlUp).Offset(1, 0) = nom
    Sheets("operation de tresorerie").Range("c65536").End(xlUp).Offset(1, 0) = total + 0
     
    Sheets("facture").Range("a65536").End(xlUp).Offset(1, 0).Value = Date
    Sheets("facture").Range("b65536").End(xlUp).Offset(1, 0).Value = box_nom.Value
    est-il possible tout d'abord de créer un alias qui permettrait d’écrire de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    operation.finA.Offset(1, 0) = nstock
    operation.finB.Offset(1, 0) = nom
    operation.finC.Offset(1, 0) = total + 0
     
    facture.finA.Offset(1, 0).Value = Date
    facture.finB.Offset(1, 0).Value = box_nom.Value
    de sorte que chaque fois que je dois faire un range end xlup, je mette cette alias finA ou finB.
    Mais aussi est-il possible de les déclarer une seule fois de sorte que ces alias sois utilisable sur plusieurs formulaire ?

    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour Bosk1000,
    Ce code peut-il vous conduire à une solution?

    Bonne journée

    Harry

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub testrg()
    Dim rg1 As Range
    Dim nstock As Integer
    nstock = 10
    Set rg1 = Sheets("feuil2").Range("a65536").End(xlUp)
    rg1.Offset(1, 0) = nstock
    End Sub

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    Pas vraiment,
    car rg1 est utilisé avec une feuille spécifique

    alors que je voudrais pouvoir utiliser l'alias spécifiquement sur plusieurs feuilles

    que "finA" qui correspondrais à "Range("a65536").End(xlUp)", soit utilisable sur toutes les feuilles

    je sais que on peux déclarer de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Dim Dep As Workbook
        Set Dep = Workbooks("COMMANDE.xlsm")
    Dim Comgroupe As Worksheet
        Set Comgroupe = Dep.Worksheets("commandegroupée")
     
    Comgroupe.Range("a65536").End(xlUp).Offset(0, MyOffset).Value = mtt1.Value
    mais je n'arrive pas à faire un alias sur la deuxième partie qui soit utilisable sur plusieurs feuille

    je n'ai pus faire que sur une feuille spécifique

    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
     
     
    Dim Commande As Excel.Worksheet
        Set Commande = Application.ThisWorkbook.Worksheets("n°commande")
    Dim findecolonne As Range
        Set findecolonne = Commande.Range("B" & [b65536].End(xlUp).Row)
    Dim Groupe As Excel.Worksheet
        Set Groupe = Application.ThisWorkbook.Worksheets("commandegroupée")
    Dim findegroupeA As Range
        Set findegroupeA = Groupe.Range("A" & [a65536].End(xlUp).Row)
    Dim findegroupeB As Range
        Set findegroupeB = Groupe.Range("B" & [b65536].End(xlUp).Row)
     
    If nom1.Value <> "" Then findecolonne.Offset(1, 0) = nom1.Value
     
    If nom2.Value <> "" Then
        findegroupeA.Offset(2, 0) = commande2.Value
        findegroupeB.Offset(2, 0) = nom2.Value
    End If
    mais à chaque fois je dois créer un alias pour chaque fin de ligne de chaque feuille.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    Il existe des variables et constantes pour te donner la derniere lignes remplie sur une colonne ,sur une ligne
    mais en aucun cas par une constante en dur
    tu veux atribuer une constante a une cellule tu dois le faire a chaque fois que tu en a besoins surtout dans ton cas (plusieurs sheets)

    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    ok
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation des alias dans la clause WHERE d'une requête SELECT
    Par OursRêveur dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 13/07/2013, 04h34
  2. [MySQL] Utilisation des alias dans une requête
    Par methodman225 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/09/2008, 12h55
  3. Utiliser des ALIAS de colonnes dans une jointure
    Par mbzhackers dans le forum SQL
    Réponses: 4
    Dernier message: 31/03/2008, 10h27
  4. bonne utilisation des alias
    Par gok6tm dans le forum Requêtes
    Réponses: 0
    Dernier message: 15/11/2007, 11h48
  5. [Oracle] utilisation des alias dans le where
    Par seddik_saber dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/09/2007, 11h18

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