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 :

Code VBA Range and End(xlDown)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Par défaut Code VBA Range and End(xlDown)
    Dim DernLigne As Long

    Bonjour,

    Voici un extrait de mon code et celui-ci s'étend jusqu'à la ligne 200000. Or j'aimerais qu'il s'arrête quand il a fini ..

    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
    DernLigne = Sheets("Suivi DEMAT").Range("E" & Rows.Count).End(xlDown).Row
     
     
    'Recopie les données d'une feuille excel
    Sheets("Base de données").Activate
    Sheets("Base de données").Range("B2:B" & DernLigne).Copy
    Sheets("Suivi DEMAT").Activate
    Sheets("Suivi DEMAT").Range("A2:A" & DernLigne).PasteSpecial xlPasteAll
    Application.CutCopyMode = False
    ...
     
    'Etendre la formule E
    Sheets("Suivi DEMAT").Activate
    Sheets("Suivi DEMAT").Range("E2").Select
    Selection.AutoFill Destination:=Sheets("Suivi DEMAT").Range("E2:E" & DernLigne)
    'Sheets("Suivi_DEMAT").Range("E2").AutoFill Destination:=Sheets("Suivi DEMAT").Range("E2:E" & DernLigne)
    Application.CutCopyMode = False

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Utilises plutôt xlUp en lieu et place de xlDown dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DernLigne = Sheets("Suivi DEMAT").Range("E" & Rows.Count).End(xlDown).Row
    car la recherche par du bas de la feuille avec "E" & Rows.Count

  3. #3
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Supprime également tous tes .activate qui servent qu'à ralentir ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("Base de données").Activate
    ...
    Sheets("Suivi DEMAT").Activate
    ...

  4. #4
    Membre habitué
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Par défaut
    Bonjour et merci

    Le soucis c'est :
    1- La 1ere partie du code j'aimerai ne pas avoir à mettre 200000 car cela complète des lignes vides
    2- La seconde partie "Etendre formule" correspond à la formule ajoutée ""=SI(ESTNA(RECHERCHEV(F3;'Mapping Filières'!$A$2:$C$71;2;FAUX));"";RECHERCHEV(F3;'Mapping Filières'!$A$2:$C$71;2;FAUX))"
    a) La formule fonctionne mais pas mon code ;(
    b) Si je n'ajoute pas 200000 à la place de '& DernLign' ca fonctionne pas


    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
    'Copie de la filière
    Sheets("Base de données").Range("K2:K200000").Copy
    Sheets("Suivi DEMAT").Range("F2:F" & DernLigne).PasteSpecial xlPasteAll
    Application.CutCopyMode = False
     
    Sheets("Suivi DEMAT").Activate
     
    Sheets("Suivi DEMAT").Range("E3").Select
    ActiveCell.FormulaR1C1 = "=SI(ESTNA(RECHERCHEV(F3;'Mapping Filières'!$A$2:$C$71;2;FAUX));"";RECHERCHEV(F3;'Mapping Filières'!$A$2:$C$71;2;FAUX))"
    Sheets("Suivi DEMAT").Range("E3").AutoFill Destination:=Sheets("Suivi DEMAT").Range("E3:E" & DernLign)
    Application.CutCopyMode = False
     
    'Etendre la formule E
    'Sheets("Suivi DEMAT").Range("E2").Select
    'Selection.AutoFill Destination:=Worksheets("Suivi DEMAT").Range("E2:E" & DernLigne)
    'Sheets("Suivi_DEMAT").Range("E2").AutoFill Destination:=Sheets("Suivi DEMAT").Range("E2:E" & DernLigne)
    'Application.CutCopyMode = False

Discussions similaires

  1. [XL-2010] Probleme de variable dans Range("B5", [B5].End(xlDown))
    Par CnamExcel dans le forum Excel
    Réponses: 12
    Dernier message: 11/03/2016, 20h59
  2. [XL-2003] VBA et End(xlDown).Row
    Par xerios123 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/07/2012, 14h01
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

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