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 :

problème de syntaxe décalage vers le bas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 96
    Par défaut
    bonjour à tous,j'ai un soucis certainement de syntaxe. J'essai de décaler toutes mes lignes de derlig à lignerougedata, dans le but d'insérer une nouvelle ligne de valeur à la ligne lignedatarouge+1. Le compilateur me signifie une erreur au niveau de la ligne du selection.entireRow...Est ce que quelqu'un pourrait m'éclairer s'il vous plait? merci et bonne journée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                'on commence par décaler toutes les données en partant du bas pour ne rien écraser:
                For LigneData = DerLig To LigneRougeData Step -1
                    Range(1, LigneData).End(xlUp).Row
                    Selection.EntireRow.Insert Shift:=xlDown
                Next LigneData
    ce code ne fonctionne pas non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                For LigneData = DerLig To LigneRougeData Step -1
                    'Range(1, LigneData).End(xlUp).Row
                    Rows("LigneData: LigneData").Select
                    Selection.EntireRow.Insert Shift:=xlDown
                Next LigneData

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(cells(LigneData,1),cells(LigneData,1)).EntireRow.Insert Shift:=xlDown
    mais a chaque fois tu vas inserer une ligne je ne vois pas l'interet
    si tu veux inserer juste une ligne enlève ta boucle et met directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(cells(lignedatarouge+1,1),cells(lignedatarouge+1,1)).EntireRow.Insert Shift:=xlDown

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 96
    Par défaut
    effectivement c'était ridicule, merci beaucoup!

  4. #4
    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 babou466 et le forum
    Comme j'arrive après la bataille, juste une réflexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(1, LigneData).End(xlUp).Row
    => range à besoin de texte : Range("A1"). Bon c'est une erreur de recopie et c'était cells
    On a donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, LigneData).End(xlUp).Row
    Soit : la ligne (.row) de la première cellule non vide en remontant (.End(xlUp)) en partant de la cellule (Cells) située à l'intersection de la Ligne 1 et de la Colonne LigneData ??? (Pourquoi appeler LigneData une colonne ??? Pour tromper l'ennemi ?)

    la cellule A de la ligne LigneData : Des syntaxes comprises par Excel
    Range ("A" & LigneData)
    Cells(LigneData, 1) ou Cells(LigneData, "A")
    Range("A1").offset(LigneData,0)

    Deuxième point: C'est bien de trouver la ligne (.Row), mais excel en sait pas quoi en faire! soit tu la glisses dans une variable, soit tu la sélectionnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X = Cells(Rows.Count, "A").End(xlup).row
    Range("A" & Rows.count).End(xlup).Select
    X = dernière cellule non vide de A (Première cellule non vide en partant de la dernière ligne et en remontant)
    Selectionner la dernière cellule de A.

    En conclusion : on a pas fini de te voir sur le forum (avec plaisir, bien sûr)

    PS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(cells(lignedatarouge+1,1),cells(lignedatarouge+1,1)).EntireRow.Insert Shift:=xlDown
    Un peu trop complexe pour moi (non, je ne suis pas feignant, j'économise juste mes touches) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(LigneDataRouge+1).insert
    me suffit
    A+

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

Discussions similaires

  1. Décalage dynamique d'un élément vers le bas
    Par Nertios dans le forum iReport
    Réponses: 0
    Dernier message: 28/07/2009, 17h14
  2. Problème de DIV et CSS, décalage vers la droite et en haut
    Par alexis1975 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/05/2009, 18h58
  3. [css] Décalage de 2 pixels vers le bas sous ie6
    Par tofito dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/10/2008, 15h09
  4. Décalage verticale vers le bas
    Par Sylvain245 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/01/2008, 20h01
  5. Décalage vers le bas sous IE
    Par Fugugirl dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/11/2006, 11h23

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