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 :

recopie automatique ligne au dessus si cellule vide [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 54
    Par défaut recopie automatique ligne au dessus si cellule vide
    j'ai écris une code qui marche mais quand il s'agit de l'exécuter à partir d'un bouton il pose problème:
    en fait il s'agit de copier dans les lignes vides des colonnes A et B les valeurs des lignes au dessus et de boucler ainsi de suite sur toute la plage:
    voici donc le code que je veux exécuter à partir d'un bouton et là ça
    ça marche même pas. quelqu'un a t il une idée ? s'il vous plaît!

    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
    Private Sub CommandButton2_Click()
     
     
    Dim i As Integer, cel As Range
     
     
    With Worksheets("Préparation déclaration FUE")
    Application.ScreenUpdating = False
     
    'boucle sur toutes les cellules des colonnes A et B
     
    For Each cel In Range("A6:B" & Range("D25000").End(xlUp).Row)
        'si la cellule est vide, elle prend la valeur de la cellule du dessus
        If cel.Value = "" Then cel.Value = cel.Offset(-1, 0).Value
    Next cel 'prochaine cellule des colonnes A et B
     
    End With
     
    End Sub

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Par défaut
    Bonjour,
    J'ai testé ton code. Il marche chez moi avec ou sans le bouton de commande.
    Quel type d'erreur as-tu?
    Autrement tu peux essayer de placer ton code dans un module avec un nom de procédure et de lancer la procédure par le bouton.

    Mais je ne crois pas que ça change grand chose au problème...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test() 
    Dim i As Integer, cel As Range, w As Worksheet 
    Set w = Worksheets("Feuil1")
    With w
    Application.ScreenUpdating = False
    'boucle sur toutes les cellules des colonnes A et B
    For Each cel In Range("A6:B" & Range("B" & w.Rows.Count).End(xlUp).Row)
        'si la cellule est vide, elle prend la valeur de la cellule du dessus
        If cel.Value = "" Then cel.Value = cel.Offset(-1, 0).Value
    Next cel 'prochaine cellule des colonnes A et B 
    End With 
    End Sub
    Appelle la procédure mais c'est pas ça le problème puisque ça marche pour moi dans les deux cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    test
    End Sub

  3. #3
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    si je comprend tu souhaites boucler sur les colonnes A et B de la feuille "Préparation déclaration FUE" et pour cela tu utilise un "With..... End With".

    il faudrait juste mettre un "." devant les "Range" :
    donc voici ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each cel In Range("A6:B" & Range("D25000").End(xlUp).Row)
    le même avec les ".":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each cel In .Range("A6:B" & .Range("D25000").End(xlUp).Row)

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 54
    Par défaut
    finalement j'ai rentré le code ci dessous et ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton5_Click()
     
    Dim i As Integer, cel As Range
    Worksheets("préparation déclaration FUE").Select
     
    Application.ScreenUpdating = False
    'boucle sur toutes les cellules des colonnes A et B
    For Each cel In Worksheets("préparation déclaration FUE").Range("A6:B" & Worksheets("préparation déclaration FUE").Range("B" & Worksheets("préparation déclaration FUE").Rows.Count).End(xlUp).Row)
        'si la cellule est vide, elle prend la valeur de la cellule du dessus
        If cel.Value = "" Then cel.Value = cel.Offset(-1, 0).Value
    Next cel 'prochaine cellule des colonnes A et B
     
    End Sub
    en tous cas merci tompom3108 et rv toulon pour vos contribution respective.

    A très bientôt.

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

Discussions similaires

  1. [XL-2007] Recopie de colonne onglet différent sans cellules vides
    Par FlorianB01 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 20/03/2015, 16h59
  2. Recopier automatiquement les valeurs d'une cellule
    Par janakka-horus dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2013, 08h31
  3. Incrémenter automatiquement lignes par rapport valeur cellule
    Par maximilien59 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/01/2012, 09h57
  4. [XL-2007] Recopier la ligne du dessus si une valeur est saisie
    Par Philippe608 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2011, 23h06
  5. Numérotation de ligne en sautant les cellules vides
    Par thomas1406 dans le forum Excel
    Réponses: 7
    Dernier message: 25/03/2009, 18h56

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