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 :

Comment placer ces &


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 31
    Par défaut Comment placer ces &
    Bonjour à tous,

    Une ptite question me tarode,

    Soient S et T des chiffres qui varient (qui seront mes numéros de lignes)

    Pour faire référence à la plage de cellule allant de [colonneB-S à colonneB-T], j'écris ça comment ? Comment dois-je placer ces fameux "&" ?

    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut dolin007 et le forum
    Range(Cells(x, colonne-S), Cells(y, colonne-T))
    x, y : numéro de ligne type Long
    colonne : numéro de colonne type Integer
    S, T : type Integer (S et T < colonne)
    Pas trop de "&" non ?
    A+

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,


    L'exemple simple et concis de Gorfael m'a tellement plus que j'ai fait un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Choix_colonne()
    Dim T As Integer, S As Integer, x As Long, y As Long, Maplage As Range
    T = 2 ' Colonne 1
    S = 5 ' Colonne2
    x = 4 ' Ligne1
    y = 10 ' Ligne2
    Set Maplage = Range(Cells(x, T), Cells(y, S))
     
    MsgBox Maplage.Address
     
    Set Maplage = Nothing
    End Sub

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 31
    Par défaut
    Merci,

    J'essai de faire ce code en fonction de ce que je veux, et ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub sauv_inventaire()
    Dim T As Integer, x As Long, y As Long, Maplage As Range
    T = 2
    x = 9 'ligne du haut
    y = 49 'ligne du bas
    K = Sheets("Feuil_inventaire").Range("J1") 'CA BLOQUE ICI !!
    Set Maplage = Range(Cells(x, T), Cells(y, T))
    Maplage.Copy
    Sheets("Feuil_inventaire").Range("J" & K).PasteSpecial Paste:=xlPasteValues
    End Sub
    Malheureusement ça marche toujours pas, ça bloque au niveau du K.
    (sachant que la cellule J1 est un compte du nombre de ligne remplies pour pouvoir coller à la suite de la colonne J)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 31
    Par défaut
    rectification je l'ai refait ça bloque plus bas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub sauv_inventaire()
    Dim T As Integer, x As Long, y As Long, K As Long, Maplage As Range
    T = 2
    x = 9 'ligne du haut
    y = 49 'ligne du bas
    K = Sheets("Feuil_inventaire").Range("J1") 'CA BLOQUE ICI !!
    Set Maplage = Range(Cells(x, T), Cells(y, T))
    Maplage.Copy
    Sheets("Feuil_inventaire").Range("J" & K).PasteSpecial Paste:=xlPasteValues
    End Sub
    Ca bloque à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil_inventaire").Range("J" & K).PasteSpecial Paste:=xlPasteValues

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut dolin007 et le forum
    Si tu veux de l'aide, va falloir être un peu plus précis : "ça bloque" ne permet pas de se faire une idée de la panne. Regarde tes variables à ce moment. K a quelle valeur ? On ne connaît rien d'autre que ce que tu nous donnes, et ce n'est pas suffisant (pour moi) pour dépanner.

    Si j'ai compris, tu veux que les valeurs de ta plage soit copiées après la dernière ligne occupée en J. Moins j'utiliserais plutôt une fonction End
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub sauv_inventaire()
    Dim T As Integer, x As Long, y As Long, K As Long, Maplage As Range
    T = 2
    x = 9 'ligne du haut
    y = 49 'ligne du bas
     
    Range(Cells(x, T), Cells(y, T)).copy ' on est sur la feuille active
    Sheets("Feuil_inventaire").Range("J65536").end(xlup)(2).PasteSpecial Paste:=xlPasteValues
    End Sub
    A+

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    effectivement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    K = Sheets("Feuil_inventaire").Range("J1")
    Qu'est ce que K? La valeur qui est dans la case J1?

    Peut etre en ajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    K = Sheets("Feuil_inventaire").Range("J1").value
    Mais attention à ce que la valeur de la cellule soit bien un entier positif
    car ca va devenir un numéro de ligne (d'apres ton code).

    Personnellement, je prefere travailler avec des cells(i,j) plus faciles à maitriser que les textes de Range.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut COCONUT2 et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    K = Sheets("Feuil_inventaire").Range("J1").value
    K a été déclaré en Long. Donc le value n'a pas grande importance.
    Personnellement étant plutôt du genre ambisenestre (), je limite mon code à ce qui est obligatoire, ça diminue mes erreurs.
    A+

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/10/2005, 12h29
  2. comment placer un copyright?
    Par molesqualeux dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/09/2005, 17h34
  3. [XML][XSL]Comment atteindre ces 2 header séparément?
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 27/05/2005, 07h36
  4. Comment placer un selected dans un boucle
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 22/06/2004, 16h55
  5. Réponses: 4
    Dernier message: 11/06/2004, 10h21

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