Copier colonne en evitant les blancs

Bok

XLDnaute Nouveau
Bonjour à tous,

J'essaie de faire un résume d'un tableau pris sur un site, seulement j'en arrive a un tableau avec des lignes vides, parfois5 ou6 entre chaque lignes remplies.
Je cherche a copier les colonnes en evitant les lignes vides.

Ce qui donnerait en exemple :

Transformer ceci :

texte 1
texte 2



texte 3


texte 4

En celà

texte 1
texte 2
texte 3
texte 4

Je cherche comment faire a avec la formule "=A:A" si possible car elle est en "temps réél".

D'avance merci

EDIT : Sur excel 2007
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Copier colonne en evitant les blancs

Bonsoir et bienvenu sur le forum Bok,

Ne connaissant pas ton niveau en Excel et VBA, ni tes contraintes, je te propose une solution tout bête : simple et rapide.

Une fois ton tableau rempli, rajouter une ligne de titre, mettre un filtre automatique sur cette dernière.

Filtrer en demandant que les lignes vides, puis les supprimer tout d'un seul coup!

Bonne fin de soirée
 

bcharef

XLDnaute Accro
Re : Copier colonne en evitant les blancs

Bonsoir Bok & Excel-lent,
Bonsoir à toutes et à tous.

Bok , bienvenue parmi nous.

Si, j'ai bien compris votre problème, essayez ce qui suit:

1 -Sélectionnez la plage à copier, soit la colonne A de votre exemple;

2 - Appuyez sur CTLR+T (ou F5)

Dans la petite fenêtre, vous cliquez sur 'cellules....'

Vous choisissez 'Constantes' alors quatre cases à cochées se dégrisent, puis vous cliquez sur OK.

3 - Les cellules sont sélectionnées, Cliquez avec le bouton droit de votre souris, copier ( ou CTLR+C)

4- Choisir la cellule à coller : clic-droit, collage spécial, valeurs (ou CTLR+V).

A vous lire et bon courage.

Cordialement

BCharef.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Copier colonne en evitant les blancs

Bonsoir Bok, Excel-lent, bcharef,

Ou aussi :

- sélectionner la colonne A

- touche F5 => Cellules => cellules vides

- onglet Accueil-Groupe Cellules => supprimer lignes entières

A+
 

Bok

XLDnaute Nouveau
Re : Copier colonne en evitant les blancs

Merci à tous pour vous réponses,

Vu que je dois le faire plein de fois (une cinquantaine), je cherche a ce que ça sot automatique et de préférence et temps réél.
En gros je cherche a savoir s'il existe une fonction qui copie la colonne A (Source) dans la colonne B (Cible) et s'il y a une cellule vide ou correspondant a un certain critère, excel l'ignore.

Ex : Si je fais dans la colonne B "=A:A", dans B1 J'aurais le contenu de A1, dans B2, le contenu de A2, je veux faire en sorte que si A2 est vide, B2 affiche le contenu de A3 (Sauf si elle est vide, dans ce cas la B2 affichera A4 etc.)

Mais s'il n'y a aucune solution je m'arrangerais avec le filtre (pas sympa puisqu'il faut le réactualiser a chaque fois que la collone source est modifiée)
 

Pyrof

XLDnaute Occasionnel
Re : Copier colonne en evitant les blancs

Bonjour,

Regarde le fichier :

tu sélectionne la zone verte puis Ctrl C
clic sur la cellule Jaune, et tu fais collage spéciale valeur

recommence avec la zone bleue
 

Pièces jointes

  • Classeur1.xls
    30 KB · Affichages: 103
  • Classeur1.xls
    30 KB · Affichages: 104
  • Classeur1.xls
    30 KB · Affichages: 107

job75

XLDnaute Barbatruc
Re : Copier colonne en evitant les blancs

Bonjour Bok, le fil, le forum,

Une solution par formule matricielle en B1 :

Code:
=SI(LIGNE()>NBVAL(A:A);"";INDEX(A:A;PETITE.VALEUR(SI(NON(ESTVIDE(A$1:A$1000));LIGNE(A$1:A$1000));LIGNE())))

A valider par Ctrl+Maj+Entrée et tirer vers le bas.

Fichier joint.

A+
 

Pièces jointes

  • Classeur1.xls
    14.5 KB · Affichages: 158
  • Classeur1.xls
    14.5 KB · Affichages: 170
  • Classeur1.xls
    14.5 KB · Affichages: 167

job75

XLDnaute Barbatruc
Re : Copier colonne en evitant les blancs

Bonsoir Bok, le fil,

est-ce aussi possible d'eviter en même temps les cellules contenant "X" ?

Voici la formule matricielle qui évite les "X" et les cellules vides :

Code:
=SI(LIGNE()>NBVAL(A:A)-NB.SI(A:A;"X");"";INDEX(A:A;PETITE.VALEUR(SI(NON(ESTVIDE(A$1:A$1000))*(A$1:A$1000<>"X");LIGNE(A$1:A$1000));LIGNE())))

A+
 

bcharef

XLDnaute Accro
Re : Copier colonne en evitant les blancs

Bonsoir Bok, Excel-lent, job75 & Pyrof,
Bonsoir à toutes et à tous.

Je trouve que la solution proposée par notre ami job75 est géniale.

A cet effet, je souhaiterai de la part de notre ami job75 des éclaircissements afin de bien assimiler le fonctionnement de la formule.

A vous lire.

Cordialement.

BCharef
 

job75

XLDnaute Barbatruc
Re : Copier colonne en evitant les blancs

Re,

Salut bcharef, tu exagères, la formule est très classique pour ce genre de chose. Mais merci quand même :)

Alors décortiquons la formule :

Code:
=SI(LIGNE()>NBVAL(A:A)-NB.SI(A:A;"X");"";INDEX(A:A;PETITE.VALEUR(SI(NON(ESTVIDE(A$1:A$1000))*(A$1:A$1000<>"X");LIGNE(A$1:A$1000));LIGNE())))

1) Le coeur (matriciel) c'est :

SI(NON(ESTVIDE(A$1:A$1000))*(A$1:A$1000<>"X");LIGNE(A$1:A$1000))

Le test est composé de 2 conditions (chacune étant VRAI ou FAUX) multipliées entre elles par *, ce qui donne 1 ou 0 pour chaque terme de la matrice de test.

Si 1 (1 fonctionne comme VRAI), le terme de la matrice renvoyé est le n° de ligne correspondant.

Si 0 (0 fonctionne comme FAUX), le terme de la matrice renvoyé est FAUX.

L'expression renvoie donc une matrice xxx composée de n° de lignes et de FAUX.

2) PETITE.VALEUR(xxx;LIGNE()) renvoie la plus petite valeur zzz de cette matrice en ligne 1, puis la suivante en ligne 2, etc... (Les FAUX ne sont pas pris en compte par la fonction et ne gênent donc pas le calcul).

3) INDEX(A:A;zzz) permet d'obtenir la cellule en colonne A sur la ligne zzz.

4) Enfin le test SI(LIGNE()>NBVAL(A:A)-NB.SI(A:A;"X") au début de la formule permet de renvoyer un texte vide "" au lieu d'une valeur d'erreur.

Bonne nuit.
 
Dernière édition:

bcharef

XLDnaute Accro
Re : Copier colonne en evitant les blancs

Bonsoir Bok, Excel-lent, job75 & Pyrof,
Bonsoir à toutes et à tous.

Salut Job, j'ai le grand plaisir de vous remercier encore une fois pour les éclaircissements.

Salutations distinguées.

BCharef
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Copier colonne en evitant les blancs

Bonsoir,

Avec fonction perso (beaucoup + rapide) et moins gourmande en taille.

Code:
-Sélectionner C1:C1000
=sansvide(A1:A1000)
Valider avec Maj+ctrl+entrée

Function SansVide(champ As Range)
  a = champ.Value
  Dim b()
  ReDim b(1 To champ.Count)
  i = 1
  For Each c In a
   If c <> "" And c <> "x" Then
     b(i) = c
     i = i + 1
    End If
  Next c
  SansVide = Application.Transpose(b)
End Function

Essayer en matriciel

=SI(LIGNE()>NBVAL(A:A)-NB.SI(A:A;"X");"";INDEX(A:A;PETITE.VALEUR(SI(NON(ESTVIDE(A$1:A$1000))*(A$1:A$1000<>"X");LIGNE(A$1:A$1000));LIGNE())))

Ajouter ou supprimer des valeurs en colonne A et regarder le temps de recalcul en bas à gauche.

Si pas convaincu, essayer avec 3000 lignes.

JB
 

Pièces jointes

  • Classeur1.zip
    27 KB · Affichages: 74
  • Classeur1.zip
    27 KB · Affichages: 72
  • Classeur1.zip
    27 KB · Affichages: 69
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 452
Messages
2 088 546
Membres
103 880
dernier inscrit
rafaelredsc