Mettre cellule de colonne dans autres feuille

Bonjour,

je désire que les cellules pleine de mes colonne B de toutes mes feuilles soit mise dans la feuille (toute la ligne) récap je n'ai pas vraiment trouvé ce que je voulais dans le forum quelqu'un peut il m'aider

merci d'avance

Bonsoir Smorvan, bonsoir le forum,

Essaie comme ça :

Sub Macro1()
Dim R As Worksheet 'déclare la variable R (onglet Recape)
Dim O As Worksheet 'déclare la variable O (Onglets)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set R = Worksheets("recape") 'définit l'onglet R
For Each O In Sheets 'boucle 1 : sur tous les onglets O du classeur
    If O.Name <> "recape" Then 'condition 1 : si le nom de l'onglet O n'est pas "recape"
        TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
        K = 1 'initialise la variable K
        For I = 2 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
            If TV(I, 2) <> 0 Then 'condition 2 : si la données ligne I colonne 2 (=> colonne B) de TV est différente de 0
                ReDim Preserve TL(1 To 4, 1 To K) 'redimensionne le tableau des lignes TL (4 lignes, K colonnes)
                For J = 1 To 4 'boucle 3 : sur les 4 colonnes J du tableau des valeurs TV
                    TL(J, K) = TV(I, J) 'récupère dans la ligne J de TL la donnée en colonne J de TV (= Transposition)
                Next J 'prochaine colonne de la boucle 3
                K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
            End If 'fin de la condition 2
        Next I 'prochaine ligne de la boucle 2
        'définit la cellule de destination DEST (A2 si A2 est vide, sinon la première cellule vide de la colonne A de l'onglet R)
        Set DEST = IIf(R.Range("A2") = "", R.Range("A2"), R.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
        If K > 1 Then 'condition 3 : si K est supérieure à 1
            'renvoie dans la cellule DEST redimensionnée le tableau TL tranposé
            DEST.Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
            Erase TV 'vide le tableau TV
            Erase TL 'vide le tableau TL
        End If 'fin de la condition 3
    End If 'fin de la condition 1
Next O 'prochain onglet de la boucle 1
End Sub

Bonsoir smorvan, ThauThème,

ou comme ça... un petit bouton rouge, 'y a pas mieux!

Private Sub cmdGO_Click()
'
Dim wks As Worksheet
'
Application.ScreenUpdating = False
'
iLig = 1
For x = 1 To Sheets.Count
    If Sheets(x).Name <> "Recap" Then
        With Sheets(x)
            iRow = .Range("B" & Rows.Count).End(xlUp).Row
            For y = 2 To iRow
                If .Cells(y, 2) > 0 Then
                    iLig = iLig + 1
                    Worksheets("Recap").Range("A" & iLig).Resize(1, .Cells(y, Columns.Count).End(xlToLeft).Column).Value = _
                                        .Range("A" & y).Resize(1, .Cells(y, Columns.Count).End(xlToLeft).Column).Value
                End If
            Next
        End With
    End If
Next
'
Application.ScreenUpdating = True
'
End Sub

8)

A+

bonjour

merci pour vos réponses mais les codes ne fonctionnent pas sur mon tableau mes colonnes vont jusqu’à x, si je re clique sur exécuter la macro sa me remet les lignes en dessous de celle existante, sa met met les cellules vides de la colonne B.

Par contre j'ai trouver ce code sur le forum qui conviendrait sauf qu'il me prend toute mes feuilles

 Sub transfert()
    'Macro Dan pour CecileCosma - 20/09/12
    Dim dlgR As Integer, dlgi As Integer
    Dim i As Byte 
    With Sheets("RECAPE")
    dlgR = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A2:X" & dlgR).ClearContents
    End With
    For i = 1 To Worksheets.Count
        Select Case UCase(Sheets(i).Name)
        Case Is = "RECAPE"
        Case Is = "Feuil4"
        Case Is = "BASE_BUDGET"
        Case Is = "BUDGET"
        Case Is = "BASE_TURNOVER"
        Case Is = "TURNOVER"
        Case Else
            dlgR = Sheets("RECAPE").Range("B" & Rows.Count).End(xlUp).Row
            With Sheets(i)
                dlgi = .Range("B" & Rows.Count).End(xlUp).Row
                .Range("A2:X" & dlgi).Copy Sheets("RECAPE").Range("A" & dlgR + 1)
            End With
        End Select
    Next
    End Sub

j'ai beau chercher je ne trouve pas la solution pour qu'il ne me prennent en compte que les feuilles 4,5,6,7,etc.

il me prend en compte les cellules vides de la colonne B mais je ne veut que celle qui sont pleine ou supérieur a zero (vide serait mieux)

merci d'avance pour le coup de main

Bonjour le fil, bonjour le forum,

Désolé Smorvan mais le code que je t'ai fourni fonctionne parfaitement avec le fichier que tu as proposé car je l'ai testé avant de te le proposer. Si tes colonnes vont jusqu'à x, tu aurais dû mettre un exemple qui correspondait à ton cas !...

Tu n'avais pas mentionné si tu voulais que l'onglet recape soit remis à zéro avant de relancer la macro. Donc, j'ai proposé un code qui ajoute les lignes en-dessous des anciennes. Il me semble que Curulis aussi. Que veux-tu, nous n'avons pas une boule de cristal !...

Bref, si tu veux de l'aide commence par envoyer des explications claires et un fichier exemple adéquat. Après tu pourras te plaindre que ça ne marche pas !

Salut tout le monde,

Bonjour ThauThème,

j'ai l'impression que tu n'as même pas essayé ma macro!

  • elle inscrit d'office à partir de la ligne 2 ;
  • j'ai justement fait en sorte qu'elle copie les lignes entières, quelle que soit leur longueur ;
  • elle évite les lignes dont la "B" = 0 ou rien.

A+

ThauThème a écrit :

Bonjour le fil, bonjour le forum,

Désolé Smorvan mais le code que je t'ai fourni fonctionne parfaitement avec le fichier que tu as proposé car je l'ai testé avant de te le proposer. Si tes colonnes vont jusqu'à x, tu aurais dû mettre un exemple qui correspondait à ton cas !...

Tu n'avais pas mentionné si tu voulais que l'onglet recape soit remis à zéro avant de relancer la macro. Donc, j'ai proposé un code qui ajoute les lignes en-dessous des anciennes. Il me semble que Curulis aussi. Que veux-tu, nous n'avons pas une boule de cristal !...

Bref, si tu veux de l'aide commence par envoyer des explications claires et un fichier exemple adéquat. Après tu pourras te plaindre que ça ne marche pas !

Bonjour,

je ne voulait pas te fâcher ThauThème en disant que sa ne fonctionnait pas mais en reprenant le fichier joint j'obtiens ceci

A B C D

0 18 1

0 18 2

0 6

0 18 1 ww

0 8 1 x

0 5 2 xx

0 1 6 xxx

0 18 1 ww

0 18 2 www

0 8 1 x

0 18 2 xx

dans la colonne B j'ai les cellules vides j'ai besoin des cellules pleine uniquement afin de n'avoir sous les yeux que ce qui m'intéresse

et désolé de ne pas avoir préciser que j'ai besoin que ce soit toute la ligne qui soit recopier et non pas les 4 premières colonne,et il faut qu'il y ai remise a zéro

encore dsl

cordialement

curulis57 a écrit :

Salut tout le monde,

Bonjour ThauThème,

j'ai l'impression que tu n'as même pas essayé ma macro!

  • elle inscrit d'office à partir de la ligne 2 ;
  • j'ai justement fait en sorte qu'elle copie les lignes entières, quelle que soit leur longueur ;
  • elle évite les lignes dont la "B" = 0 ou rien.

A+

Bonjour,

je ne voulait pas te fâcher curulis57 idem en disant que sa ne fonctionnait pas

il faut qu'il y ai remise a zéro chose que je n'ai pas préciser

encore dsl

cordialement

Re: mettre cellule de colon

Salut smorvan,

avec une petite instruction de plus...

A+

curulis57 a écrit :

Salut smorvan,

avec une petite instruction de plus...

A+

Impeccable curulis57 sa à l'air de fonctionner maintenant dans mon fichier j'ai quelques feuille que je voudrais pas voir dans ma récap genre planing pour l'aune l'autre coef et d'autre a venir si je ne veut pas les avoir dans ma récap je doit me faire un code supplémentaire si tu as sa en stock je suis preneur

merci encore

Salut smorvan,

j'ai quelques feuille que je voudrais pas voir dans ma récap genre planing pour l'aune l'autre coef et d'autre a venir

Ça, genre, ce n'est pas bon!

Tu peux émettre toutes les conditions mais pour permettre à ta macro de vivre sans souci, il faut que tu mettes au point un système de nommage de tes feuilles pour lui permettre de repérer les feuilles à exclure du calcul!

  • par exemple, les feuilles à calculer = C_..xxx... ou xxx_C
  • les feuilles à exclure = P_...xxx... ou xxx_P

Genre, tu comprends?

A+

Rechercher des sujets similaires à "mettre colonne feuille"