Récupération de données dans une colonne

corneliusdrusus

XLDnaute Nouveau
Bonsoir à tous,

J'ai un probleme que j'aimerai résoudre pour avancer dans ce que je fait.

Lors de mes calculs, j'obtient une colonne où il y a plusieurs cellules de données (ici des chiffres) séparer par des cellules vides (""). Je souhaiterai dans une seconde colonne regrouper les cellules de données chiffrés dans le même ordre mais sans cellules vides ("") qui vienne s'y intercaler.

Comment puis-je faire?

Merci à vous.
 

skoobi

XLDnaute Barbatruc
Re : Récupération de données dans une colonne

Bonjour corneliusdrusus,

tu peux faire celà simplement après avoir copier vers une autre colonne en faisant Edition-atteindre puis bouton cellules et enfin choisie "cellules vides".
Tu n'as plus qu'à les supprimer ;).
 

david84

XLDnaute Barbatruc
Re : Récupération de données dans une colonne

Bonsoir,
l'utilisation de la fonction petite valeur te permet de ramener les valeurs de la colonnes sans les cellules vides :
=PETITE.VALEUR(SI(plage<>"";LIGNE(plage));LIGNES($1:1))
plage représente la plage à sélectionner.
Formule matricielle à valider simultanément par Ctrl, maj et entrée.
A+
 

corneliusdrusus

XLDnaute Nouveau
Re : Récupération de données dans une colonne

Je vous remercie pour vos réponses, mais avec la formule matricielle, j'ai encore un probleme, j'ai copier et coller la formule dans la premiere cellule de la colonne de destination, j'ai remplacer les mots "plage" par la plage de cellules correspondants à la colonne d'origine (E4:E600), j'ai enfin taper ctrl+maj+entrée.
J'ai bien une formule matricielle mais celle-ci me renvoit "#N/A".
En recopiant la formule jusqu'en bas de la colonne de destination, j'ai toujours ce message "#N/A".

Comment faire?

Merci beaucoup
 

corneliusdrusus

XLDnaute Nouveau
Re : Récupération de données dans une colonne

Je n'arrive vraiment pas à trouver une solution, peut-on m'expliquer ce qui cloche?

J'ai une colonne rempli de cellule de données coupés par beaucoup de cellules vide, mais je souhaiterai sur une autre colonne, agencer cellule par cellule les données dans le même ordre sans qu'il y ait des cellules vides entre.

Merci beaucoup.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Récupération de données dans une colonne

Bonjour le fil, bonjour le forum,

Peut être avec la macro ci-dessous à adapter (pour les colonnes)... :
Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
 
'boucle sur toutes les cellules éditées cel de la colonne A 
For Each cel In Range("A1:A" & Range("A65536").End(xlUp).Row) 
    If cel.Value <> "" Then ' condition 1 : si la cellule n'est pas vide
        If Range("B1").Value = "" Then 'condition 2 : si B1 est vide
            Set dest = Range("B1") 'dest est B1
        Else 'sinon
            'dest est la première cellule vide en colonne B   
            Set dest = Range("B65536").End(xlUp).Offset(1, 0) 
        End If 'fin de la condition 2
        'copie et colle la cellule (avec mise en forme)
        cel.Copy dest 'ou dest.Value = cel.Value si tu ne veux pas la mise en forme
    End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Récupération de données dans une colonne

Bonjour le forum, le fil

Transcription VBA de la consigne de Skooby (que je salue)

Code:
Sub Macro1_ENREG_MACRO()[COLOR=Green]'code issu de l'enregistreur de macros[/COLOR]
    Selection.Copy
    Range("B1").Select
    ActiveSheet.Paste
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
End Sub
Code:
Sub Macro1_Modifiee()[COLOR=Green]'code simplifié[/COLOR]
Selection.Copy Range("B1")
Range([B1], [B65536].End(xlUp)).SpecialCells(4).Delete Shift:=xlUp
End Sub
PS: Un dernier salut, pour le sieur Robert
 

corneliusdrusus

XLDnaute Nouveau
Re : Récupération de données dans une colonne

Alors, tout dabord je vous remercie pour votre aide.

Mais par contre, tout ce qui est visual Basic, je suis totalement novice.
Donc le code que vous m'avez donné, issu de l'enregistreur de macro, je doit le mettre où: module de classe? Module tout court?

Un fois le code enregistré, comment le mettre en pratique? comment tourner la formule pour tenir compte de la programmation?

un petit cours s'impose pour moi.

Merci.
 

corneliusdrusus

XLDnaute Nouveau
Re : Récupération de données dans une colonne

Je vient de voir pourquoi je n'arrivait pas, je n'ai pas installé Visual Basic pour Application. Je ne sait pas où trouver pour le telecharger, pouvez vous me conseillez, et si possible peut on adapter ces codes à visual Basic editor pour les macros.

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Récupération de données dans une colonne

Bonjour à tous

Je vient de voir pourquoi je n'arrivait pas, je n'ai pas installé Visual Basic pour Application. Je ne sait pas où trouver pour le telecharger, pouvez vous me conseillez, et si possible peut on adapter ces codes à visual Basic editor pour les macros.
Tu utilises Excel ou Open Office ?

Sauf erreur de ma part, VBA est d'installé d'office lors d'un installation d'Office (de chez Microsoft)
La seule chose qui n'est pas forcément installé par défaut c'est l'aide en ligne de VBA.

Il faut mettre le code VBA de mon précédent message dans un module
Dans Excel faire ALT+F11, puis Insertion/Module
Ensuite retour dan Excel par ALT+Q
et la Outils/Macros/NOMDELAMACRO* -> Exécuter

(* mettre en surbrillance (c-a-d) Sélectionner )
 
Dernière édition:

corneliusdrusus

XLDnaute Nouveau
Re : Récupération de données dans une colonne

J’utilise office 2003, je vais essayer ta manip pour voir si cela fonctionne.

Pour david 84, merci, la formule marche bien, sauf que j’ai remarqué que si la plage de donnée ne commence pas en 1 er ligne mais en dessous, la formule ne marche plus. J’ai donc adapter mon classeur pour que cela marche, mais si tu peux me dire s’il y a un moyen grâce à ta formule d’y remédier. Merci.

Merci à tous.
 

Discussions similaires