Copier uniquement plage cellules non vides... [Résolu]

Messages postés
10
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006
- - Dernière réponse : mortalino
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
- 22 mai 2006 à 01:05
J'ai absolument besoin d'aide... j'ai beau retourner ça dans tous les sens, je ne suis qu'une débutante et IMPOSSIBLE de trouver le code qu'il me faut...

(AU FAIT !! un grand merci à Mortalino qui m'a bien dépannée la dernière fois !! je n'ai pas eu le temps de le remercier encore)

Bref, mon souci est de créer un historique.
J'ai une feuille (titres sur la zone A1:C1), que je voudrais copier dans une feuille historique
Seulement je ne voudrais copier que les cellules de la zone "A2:C..." contenant des données.

j'ai essayé de bidouiller dans tous les sens, mais rien n'y fait....

HELP ME PLEASE !!

merci pour votre aide !

Sophie
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
3
Merci
Do While CptColone < 257 'Pour les 256 colone (compteur STRICTEMENT inférieur à)
CptLigne = 1 'Initialisation du compteur ligne
Do While CptLigne < 65536 'Pour toute les ligne
Cells(CptLigne, CptColone).Select 'Selectione la cellule en cours
If ActiveCell = "" Then 'Si la cellule est vide
Selection.End(xlDown).Select 'Passe directement à la valeur suivante (equivalent à la comande "Ctrl" + Fléche directionelle )
'Le compteur ligne est egale au num ligne de la cellule celectionnée
CptLigne = Val(Split(Selection.Address(True, True, xlR1C1), "R")(1))
End If
If ActiveCell <> "" Then 'Si la cellule est non vide
If PremLigne = 0 Or PremLigne > CptLigne Then 'Si la 1ér ligne non détect ou supérieur à ligne en cours
PremLigne = CptLigne 'Sauv du num ligne
End If
If DerLigne < CptLigne Then 'Si num derligne est inférieur a la ligne en cours
DerLigne = CptLigne 'Sauv du num ligne
End If
If PremColone = 0 Then 'Si 1ér colone non détect
PremColone = CptColone 'Sauv du num colone
End If
If DerColone < CptColone Then 'Si num dérinere colone inférieur à la colone en cours
DerColone = CptColone 'Sauv du num colone
End If

CptLigne = CptLigne + 1 'Passe à la ligne suivante
End If

Loop

CptColone = CptColone + 1 'Passe à la colone suivante
Loop

Voila un "bout" de code qui cherche les donnée dans une feuille
Une fois que ce code est executer tu à 4 variable :
PremLigne,DerLigne,PremColone,DerColone (ce qu'elle contienne est evidant je crois)

D'oh! Nuts!
Mmmmm...
DONUTS

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 213 internautes nous ont dit merci ce mois-ci

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
3
Merci
cette ligne : "Selection.End(xlDown).Select 'Passe directement à la valeur suivante (equivalent à la comande "Ctrl" + Fléche directionelle )" est tres utile pour que ton code ne soit pas trop long à l'execution.

De plus tu dois changer la ligne "Do While CptColone < 257" si tu ne veut pas scaner les 256 colone donc si tu veut faire le test pour les colone de "A" à "C" remplace là par "Do While CptColone < 4"

Alors avec ça tu dois pouvois t'en sortire

D'oh! Nuts!
Mmmmm...
DONUTS

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 213 internautes nous ont dit merci ce mois-ci

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
0
Merci
Heeeeeeeeeeeeeeeeeee, alors ça marche???
Pense à valider la(les) rèponce(s) qui t'on permis de résoudre ton problème (ca permet de savoir si tu t'en ai sortie, c'est aussi vrais pour les autre question que tu à pue posser)
merci

D'oh! Nuts!
Mmmmm...
DONUTS
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
0
Merci
Oups, je viens de relire ta question et tu à peut être un problème.Pour commancer le test à la ligne 2 (puisque tu dit que tes titre sont sur la ligne 1) tu remplace simplement "CptLigne 1" par "CptLigne 2" sorti de cas tout dois aller.

D'oh! Nuts!
Mmmmm...
DONUTS
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Il est bon ce Pollack,

on t'a pas vu un moment...

Bref, moi, j'accepte ta réponse.

@ ++
Mortalino
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
0
Merci
C vrais que l'on me vois moin en ce momant, j'ai baucoup de boulo mais je passe quant même filer des coups de main (et posser des questions). Bonjours à toi Mortalino.

D'oh! Nuts!
Mmmmm...
DONUTS
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Salut Polack !

Et bien ça fait plaisir de te voir,
en espérant te croiser à nouveau dans les messages.

Bonne journée à tyoi aussi

Mortalino
Messages postés
10
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 mai 2006
0
Merci
J'avoue que j'ai énormément de mal...
Impossible de faire marcher ce code... en même temps, faut avouer que vu que ça fait tout juste 3 semaines que je me suis mise à VBA, j'ai encore du mal à comprendre tous les codes...

à mon avis, dès que j'aurai pigé ce que ça veut dire, j'arriverai à le faire fonctionner....

Pfff c nul les gonzesses !!!
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Salut Sophie,

C'est pas nul les filles, au contraire ça fait plaisir de voir des demoiselles sur ce forum... (si t'habites pas loin, je te donne des cours gratuits / lol)

On débute tous un jour ou l'autre.

Bon, pour ton problème d'historique, si j'ai bien compris ca fait ça :
(schéma approximatif, bien sûr !)

_____________________________
| A | B | C |
_|_________|________|________|
1| Titre1 | Titre2 | Titre3 |
2| abc | def | ghi |
3| jkl | mno | pqr |

et tu veux donc récupérer les valeurs de A2:Cx (pour cet exemple : A2:C3)
par contre est ce que tu veux ces valeurs en fichier texte ou une copie de l'onglet ?

En gros, 1/ comment veux tu récupérer ces données, 2/ doit-on effacer l'historique à chaque changement ?

@ bientôt Sophie

Mortalino