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 :

Insertion de plusieurs cellules vides


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut Insertion de plusieurs cellules vides
    Bonjour à tous,
    Je cherche à savoir comment insérer plusieurs cellules vide à partir d'une cellule donnée, en décalant les données existantes vers la droite.
    Pour insérer quatre cellules vides en A1, A2, A3, A4 par exemple j'utilise le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1", "A4").Insert shift:=xlToRight
    L'image suivante montre mes cellules d'origine et en dessous ce que je parviens à réaliser. A droite des cellules d'origine, ce que je voudrais réaliser (ici décalage de 2 colonnes, mais cela pourrait être davantage)

    Nom : décalage cellules.jpg
Affichages : 1984
Taille : 51,9 Ko

    Merci pour votre aide et votre collaboration

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    voici pour décaler la cellule A1 4 fois vers la droite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub oo()
    For i = 1 To 4
        Range("A1").Insert shift:=xlToRight
    Next i
    End Sub
    PS : je t'ai pas oublié pour notre petite histoire précédente, je reviens rapidement avec ma nouvelle méthode proposé en mp

  3. #3
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Joe,
    Des boucles, des boucles toujours des boucles...
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Des boucles, des boucles toujours des boucles...
    Il suffit de demander
    Voici un exemple de l'insertion de 12 cellules vides (4 lignes x 3 colonnes) à partir de A1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.Worksheets("Feuil3")
    .Range(.Cells(1, 1), .Cells(4, 3)).Insert Shift:=xlToRight
    End With
    Et paramétrable bien entendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub InsertCellsBlank()
     ' Insertion de 3 lignes et 5 colonnes
     Const NumOfRows As Long = 3, NumOfColumns As Integer = 5
     ' A partir de D2
     Const StartRow As Long = 2, StartColumn As Integer = 4
     With ThisWorkbook.Worksheets("Feuil3")
     .Range(.Cells(StartRow, StartColumn), .Cells(StartRow + NumOfRows - 1, StartColumn + NumOfColumns - 1)).Insert Shift:=xlToRight
     End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Philippe,
    Cette solution me convient mieux, merci quand même joe .
    Je vais devoir l'adapter pour mon application car je ne connais pas à l'avance le nombre de cellule à décaler.
    Je pense à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim Nbcol As Integer
    ' Calcul de Nbcol
     .Range(.Cells(i, j), .Cells(i + 4, j + Nbcol)).Insert Shift:=xlToRight
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour Eric,
    D'où ma deuxième proposition paramétrable mais il est évident que l'on peut créer une procédure avec trois arguments en lieu et place des constantes qui n'étaient présentes que pour l'exemple.
    Voici la procédure adaptée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub InsertCellsBlank(Rng As Range, NumOfRows As Long, NumOfColumns As Integer)
     Dim StartRow As Long, StartColumn As Integer
     StartRow = Rng.Row: StartColumn = Rng.Column
     With ThisWorkbook.Worksheets("Feuil3")
     .Range(.Cells(StartRow, StartColumn), .Cells(StartRow + NumOfRows - 1, StartColumn + NumOfColumns - 1)).Insert Shift:=xlToRight
     End With
    End Sub
    Procédure qui invoque celle-ci en insérant 8 cellules sur 4 lignes et 2 colonnes à partir de la cellule B3 de la feuille nommée Feuil3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub RunInsertCellsBlank()
     Dim sht As Worksheet
     Set sht = ThisWorkbook.Worksheets("Feuil3")
     InsertCellsBlank sht.Range("B3"), 4, 2
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [XL-2007] Selectionner plusieures cellules de la première ligne vide
    Par trane51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/06/2011, 15h58
  2. Tri d'un tableau de plusieurs colonnes + cellule vide
    Par Neophyte27 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/11/2010, 23h57
  3. insertion de cellules vides
    Par sanach dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2010, 14h57
  4. [XL-2003] Mettre en couleur plusieurs cellules vides
    Par Paxaranne dans le forum Excel
    Réponses: 1
    Dernier message: 23/02/2010, 23h23
  5. [vba-e] insertions de plusieurs cellules dans une
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/04/2007, 17h14

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