(VBA) Copier plage de colonnes paires vers autres plages sur la même feuille

Iwana

XLDnaute Nouveau
Bonjour cher forum,

Pensant que c'était probablement un problème déjà posé, j'ai vraiment, vraiment fouillé sur le net mais je n'ai trouvé aucune réponse satisfaisante (comprenez "qui fonctionne").
Sur une feuille j'ai deux tableaux. Ma petite macro est censée sélectionner et copier une plage de cellules des colonnes PAIRES du tableau 1 à partir de la colonne F, puis coller les plages en questions consécutivement sur le tableau 2.
J'ai joint à ce post un fichier qui montre précisément ce que j'attends.
J'ai également créé un module test dans lequel figure le (mini)code de ma (mini)macro. J'y ai mis en commentaire les 3 essais que j'ai faits.

Merci d'avance pour votre aide, je tourne en rond !

Iwana
 

Pièces jointes

  • copcol_colonnes_paires.xlsm
    47.7 KB · Affichages: 110
  • copcol_colonnes_paires.xlsm
    47.7 KB · Affichages: 140
  • copcol_colonnes_paires.xlsm
    47.7 KB · Affichages: 125
G

Guest

Guest
Re : (VBA) Copier plage de colonnes paires vers autres plages sur la même feuille

Re,

Chez moi tout se passe correctement, même pour la feuille 2

Pour les cellules vides normalement excel renvoie Empty quand on colle des valeurs.

A+
 

Iwana

XLDnaute Nouveau
Re : (VBA) Copier plage de colonnes paires vers autres plages sur la même feuille

Salut Si... !
Non j'ai vérifié plusieurs fois, le nom de mes feuilles ne comporte aucun espace, ni devant, ni derrière.

Re Hasco,

J'ai exactement le même code que toi, et apparemment dans mon fichier ce sont vraiment les cellules vides dans les plages sélectionnées qui bloquent parce que, pour tester, j'ai remplacé chaque cellule vide par un tiret et depuis ça fonctionne très. Mais un problème en amenant visiblement un autre, j'ai créé un mini macro qui, avant même de faire toute cette procédure de copier/coller, va repérer et remplacer les cellules vides, UNIQUEMENT dans les feuilles numérotées.
Et ça coince : j'ai mis un bouton de commande sur ma feuille SumUp auquel j'ai affecté la macro qui remplace les cell vides, mais ça exécute la macro seulement sur la feuille active (donc le nom n'est pas pas du tout numérique)...

Code:
' condition d'application de la Sub replace_empty
Sub appel_replace()
Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        If IsNumeric(ws.Name) Then
            Call replace_empty
        End If
    Next ws
    
End Sub

' code applicable à toutes les feuilles numériques : si cellule vide alors mettre un tiret
Sub replace_empty()
Dim oRangeTotal As Range
Dim oRange As Range
    Set oRangeTotal = Range("F2:G23", Range("F65535:G65535").End(xlUp))
    For Each oRange In oRangeTotal
        If IsEmpty(oRange) Then
            oRange.Value = "-"
        End If
    Next
End Sub
 
G

Guest

Guest
Re : (VBA) Copier plage de colonnes paires vers autres plages sur la même feuille

re,

Je ne vois pas pourquoi tu es obligé d'en passer par là. Mais comme tu n'as pas donné d'exemple de fichier présentant le problème voici ta macro corrigé.

Un conseil: commence à apprendre la base des appels de macro (ou fonction) avec paramètres.
Code:
' condition d'application de la Sub replace_empty
Sub appel_replace()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If IsNumeric(ws.Name) Then
            Call replace_empty(ws)
        End If
    Next ws
End Sub
' code applicable à toutes les feuilles numériques : si cellule vide alors mettre un tiret
Sub replace_empty(Optional sh As Worksheet = Nothing)
    Dim oRangeTotal As Range
    If sh Is Nothing Then Set sh = ActiveSheet
    Dim oRange As Range
    With sh
        On Error Resume Next
        Set oRangeTotal = .Range("F2:G23", .Range("F65535:G65535").End(xlUp)).SpecialCells(xlCellTypeBlanks)
        If Not oRangeTotal Is Nothing Then oRangeTotal.Cells.Value = "-"
    End With
End Sub

je viens de vérifier, si je mets des cellules vides dans les plages de cellules à copier F2:G23 des feuilles 1 à 5, il n'y a pas de problème les collages de valeurs renvoie bien des cellules vides(Empty). Ce qui est normal.

A+
 
Dernière modification par un modérateur:

Iwana

XLDnaute Nouveau
Re : (VBA) Copier plage de colonnes paires vers autres plages sur la même feuille

Alors je ne sais pas ce qui bloque de mon côté.
Même en copiant ton code au caractère près, ça ne fonctionne pas (ça ne met plus aucun tiret, pas même dans la feuille active comme ça le faisait avant ta correction).

Merci tout de même pour ton aide précieuse.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 372
Membres
103 198
dernier inscrit
CACCIATORE