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 :

fusion de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut fusion de cellules
    Bonsoir,
    J'ai un souci sur une commande qui me permet de retravailler un tableau (il me bloque la macro avec un code erreur 1004).
    Je ne trouve pas où cela foire, quelqu'un aurait-il une idée ?
    Merci d'avance et bonne nuit...

    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Je te remet ton code avec quelques corrections, concernant le bug, peux-tu expliquer ce que tu cherches à faire avec ta boucle i ?
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Sub SupprColonnes()
    'Suppression des colonnes
    Dim l As Range, C As Range
    Dim montest As Integer, x As Integer, i As Integer
     
    For Each l In Range("A2", Range("A2").End(xlToRight))
        For Each C In Range("Liste")
        If l.Value = C.Value Then
        montest = 1
        Exit For
        End If
        Next C
        If montest <> 1 Then
        l.ClearContents
        End If
    montest = 0
    Next l
     
    Rows("2:2").SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
    Range("A1").EntireRow.Delete
    Rows("1:1").RowHeight = 40.5
     
        '**************************************************************************
        'Toute cette partie peut être remplacée par la boucle For x
        '**************************************************************************
        'Sélection des colonnes selon valeur de l'en-tête et largeur selon valeur cellule
        'Columns("A:A").ColumnWidth = Sheets("Fonctions").Range("J30").Value
        'Columns("B:B").ColumnWidth = Sheets("Fonctions").Range("J31").Value
        'Columns("C:C").ColumnWidth = Sheets("Fonctions").Range("J32").Value
        'Columns("D:D").ColumnWidth = Sheets("Fonctions").Range("J33").Value
        'Columns("E:E").ColumnWidth = Sheets("Fonctions").Range("J34").Value
        'Columns("F:F").ColumnWidth = Sheets("Fonctions").Range("J35").Value
        'Columns("G:G").ColumnWidth = Sheets("Fonctions").Range("J36").Value
        'Columns("H:H").ColumnWidth = Sheets("Fonctions").Range("J37").Value
        'Columns("I:I").ColumnWidth = Sheets("Fonctions").Range("J38").Value
        'Columns("J:J").ColumnWidth = Sheets("Fonctions").Range("J39").Value
        'Columns("K:K").ColumnWidth = Sheets("Fonctions").Range("J40").Value
        'Columns("L:L").ColumnWidth = Sheets("Fonctions").Range("J41").Value
        'Columns("M:M").ColumnWidth = Sheets("Fonctions").Range("J42").Value
        'Columns("N:N").ColumnWidth = Sheets("Fonctions").Range("J43").Value
        'Columns("O:O").ColumnWidth = Sheets("Fonctions").Range("J44").Value
        'Columns("P:P").ColumnWidth = Sheets("Fonctions").Range("J45").Value
        'Columns("Q:Q").ColumnWidth = Sheets("Fonctions").Range("J46").Value
        'Columns("R:R").ColumnWidth = Sheets("Fonctions").Range("J47").Value
        '****************************************************************************
        For x = 1 To 18
        Cells(1, x).ColumnWidth = Sheets("Fonctions").Cells(29 + x, 10).Value
        Next x
     
    ' Fusion des cellules et renommage
    Range("Q1:R1").Merge
    Range("Q1").Value = "Immatriculation"
    Range("D1").Value = "Lieu"
    Range("H1").Value = "Texte du journal"
     
    '****************************************
    'les deux lignes suivantes ne servent à rien
    'on peut directement écrire For i = 2 to 200
    '****************************************
    'Range("I2:I200").Select
    'Compteur = Selection.Rows.Count
    For i = 2 To 200
        'là je comprend pas très bien ce que tu veux faire
        'tu veux remplir les cellules I2 à I200 avec les valeurs des colonnes F & G ?
        ActiveCell.Offset(i - 1, 0).FormulaR1C1 = "=RC[-3]&""""&RC[-2]"
        'ici la colonne H prend la même valeur que la colonne I ?
        ActiveCell.Offset(i - 1, -1).Value = ActiveCell.Offset(i - 1, 0).Value
    Next i
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut Histoire de colonnes
    Salut Fring,
    En fait, dans la colonne H, je reprends uniquement la valeur de la colonne I (qui elle est dépendante de F + G); comme ça, je peux supprimer les colonnes I / F / G et garder que H qui en est le résultat.
    Merci pour la boucle qui remplace avantageusement la sélection colonne-lignes faite auparavant.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut Oups !
    Désolé, mais la ligne de codage plante à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, x).ColumnWidth = Sheets("Fonctions").Cells(29 + x, 10).Value
    Est-ce que ce ne serait pas le fait de lier des éléments Cells avec ColumnWidth ?

    Didier

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Non je ne pense pas, vérifie un peu ce que tu as comme valeurs dans les cellules J30 à J47 de la feuille Fonctions.

    Il y a t'il une ou des cellules vides ?
    Il y a t'il du texte ou des nombres du style 35689 ?

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 18
    Par défaut
    Tout Juste !
    Cela marche ! Merci.

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

Discussions similaires

  1. [VB.NET2003][Framework 2.0] Fusion de cellule
    Par b_lob dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/04/2006, 11h06
  2. [Swing][JTable]Fusion des cellules d'un tableau
    Par LordBlaize dans le forum Composants
    Réponses: 1
    Dernier message: 23/03/2006, 18h48
  3. [JTable]Fusion de cellules
    Par vincent63 dans le forum Composants
    Réponses: 6
    Dernier message: 13/02/2006, 14h28
  4. [VB6] Problème MsFlexgrid et Fusion des cellules
    Par dubidon dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/02/2006, 09h00
  5. [VBA-E] Fusion de cellule
    Par Nicos77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2004, 13h24

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