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 :

Selection automatique variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut Selection automatique variable
    Bonjour

    Voilà une macro excel où je selectionne 4 colonnes ...Range("F:K").Select... seulement je ne voudrais selectionner automatiquement que les lignes et colonnes non vides, c'est à dire jusqu'à la derniere ligne du fichier. Je pensais utiliser ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.SpecialCells(xlCellTypeLastCell).Select
    qui me donne la derniere cellule puis le stocker dans une variable mais de quel type? et ensuite utiliser cette variable pour faire une selection de la cellule A1 à cette variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1...variable).Select
    Mais j'ai essayé pas mal de syntaxe sans succés
    Pouvez vous m'aider svp

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 16/10/2007 par sncf
    '
    ' Touche de raccourci du clavier: Ctrl+a
    '
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=True, Space:=True, Other:=False, FieldInfo:= _
            Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
            DecimalSeparator:=".", TrailingMinusNumbers:=True
     
        Range("A:A,D:D,E:E").Select 'selection colonnes A D E
        Selection.EntireColumn.Hidden = True 'masque la selection
        Range("F2").Select 'selectionne la cellule F2
        ActiveCell.FormulaR1C1 = "=IF(RC[-2]>45,1,0)" 'y integre la formule si >45 alors 1
        Range("G2").Select 'selectionne la cellule G2
        ActiveCell.FormulaR1C1 = "=IF(RC[-3]<55,1,0)" 'y integre la formule si <55 alors 1
        Range("H2").Select 'selectionne la cellule H2
        ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"  'y integre la formule G2*H2
        Range("I2").Select 'selectionne la cellule I2
        ActiveCell.FormulaR1C1 = "=IF(RC[-5]>95,1,0)"  'y integre la formule si >95 alors 1
        Range("J2").Select 'selectionne la cellule J2
        ActiveCell.FormulaR1C1 = "=IF(RC[-6]<105,1,0)"  'y integre la formule si <105 alors 1
        Range("K2").Select 'selectionne la cellule K2
        ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"  'y integre la formule I2*J2
        Range("F2:K2").Select 'selectionne toutes les formules
        Selection.Copy 'les copient
        Range("F:K").Select 'selectionne les colonnes correspondantes
        ActiveSheet.Paste 'les posent
        Range("B1").Select 'selectionne cellule B1
        ActiveCell.FormulaR1C1 = "Jour" 'y inscrit Jour
        Range("C1").Select 'selectionne cellule C1
        ActiveCell.FormulaR1C1 = "Heure" 'y inscrit Heure
        Range("H1").Select 'selectionne cellule H1
        ActiveCell.FormulaR1C1 = "Defaut" 'y inscrit Defaut
        Range("K1").Select 'selectionne cellule K1
        ActiveCell.FormulaR1C1 = "Marche" 'y inscrit Marche
        Range("F:G,I:J").Select 'selectionne colonnes F G I F
        Selection.EntireColumn.Hidden = True 'les masquent
        End Sub

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Par défaut
    Citation Envoyé par tardieub Voir le message
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1...variable).Select
    bonjour,
    a priori ce type de code ne fonctionne pas(en tout cas, moi j'ai pas reussi)

    je suis passé par une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cell = "E" & g & ":" & "K" & g
    ActiveSheet.Range(cell).Value = ""

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Citation Envoyé par Oussbaba au rhum Voir le message
    bonjour,
    a priori ce type de code ne fonctionne pas(en tout cas, moi j'ai pas reussi)

    je suis passé par une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cell = "E" & g & ":" & "K" & g
    ActiveSheet.Range(cell).Value = ""
    si je comprends bien g est la ligne mais comment je l'extrait de
    Selection.SpecialCells(xlCellTypeLastCell).Select

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 300
    Par défaut
    bonjour tardieub,

    En supposant que ta colonne D est remplie, tu peux remplacer ton code par ceci :

    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
    Sub Macro1()
        Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=True, Space:=True, Other:=False, FieldInfo:= _
            Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
            DecimalSeparator:=".", TrailingMinusNumbers:=True
     
        Range("A:A,D:D,E:E").EntireColumn.Hidden = True 'masque la selection
        Range("F2:F" & [D65000].End(xlUp).Row).FormulaR1C1 = "=IF(RC[-2]>45,1,0)" 'y integre la formule si >45 alors 1
        Range("G2:G" & [D65000].End(xlUp).Row).FormulaR1C1 = "=IF(RC[-3]<55,1,0)" 'y integre la formule si <55 alors 1
        Range("H2:H" & [D65000].End(xlUp).Row).FormulaR1C1 = "=RC[-2]*RC[-1]" 'y integre la formule G2*H2
        Range("I2:I" & [D65000].End(xlUp).Row).FormulaR1C1 = "=IF(RC[-5]>95,1,0)" 'y integre la formule si >95 alors 1
        Range("J2:J" & [D65000].End(xlUp).Row).FormulaR1C1 = "=IF(RC[-6]<105,1,0)" 'y integre la formule si <105 alors 1
        Range("K2:K" & [D65000].End(xlUp).Row).FormulaR1C1 = "=RC[-2]*RC[-1]" 'y integre la formule I2*J2
        Range("B1").Value = "Jour" 'y inscrit Jour
        Range("C1").Value = "Heure" 'y inscrit Heure
        Range("H1").Value = "Defaut" 'y inscrit Defaut
        Range("K1").Value = "Marche" 'y inscrit Marche
        Range("F:G,I:J").EntireColumn.Hidden = True 'les masquent
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Merci Mapeh

    C'est nickel, impressionant en fait c'est " & [D65000].End(xlUp).Row qui selectionne la ligne à chaque fois purée c'est savant ça! Et en plus j'ai 2 fois moins de lignes de programme.

    Merci encore

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/07/2006, 23h08
  2. [PHP-JS] select automatique
    Par jadoo dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 13h54
  3. problème de selection automatique sous access...
    Par Moustique67 dans le forum Access
    Réponses: 4
    Dernier message: 29/11/2005, 01h33
  4. [JTable] selection automatique d'une ligne
    Par bibx dans le forum Composants
    Réponses: 4
    Dernier message: 17/06/2005, 12h59
  5. resultat requete SQL d'un select dans variable vb
    Par seb_06 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 11/10/2004, 17h29

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