Commande VBA

S

sebastien

Guest
Existe-t-il une commande sur VBA, pour n'extraire que des lignes dont au moins une colonne est pleine?

Je me sers de macro pour avoir mes données, je voudrais ensuite exporter ces données dans des feuilles d'analyse.
Je voudrais insérer juste le nombre de lignes qu'a fait ressortir ma macro.
Les insérer dans des lignes que crérait ma macro (au format de ma ligne de calcul) et, le top du top serait qu'il incrémente les colonnes de mon graphique en conséquence.

Il y a au final plusieurs point:
Existe-t-il une commande qui permette d'extraire juste le nombre de ligne?
Est il possible de reproduire une ligne du nombre généré dans l'action précédente?
Est il possible d'incrémenter le champs de prise en compte d'un graphique en conséquence?

Je suis capable de repérer la bonne position pour coller ensuite les données.
 
S

salim

Guest
Bonjour Sebastien et le Forum


Sebastien prend le pas mal mais entre ce Fil Lien suppriméet celui ci tu n'as pas dit une fois Bonjour, Aurevoir, SVP, un minimum quoi . par conséquent je te suggère de passer par ICI.

@+ Salim
 
S

sebastien

Guest
Pardonne moi je me suis rendu compte que je manquais a toute courtoisie juste après avoir envoyé la demande.

Encore une fois pardon.


J'ai tellement pris le soin de formuler le plus clairement la demande (qui est compliquée que.....)

Merci pour ce rappel

Au revoir

Bonne soirée
 
@

@+Thierry

Guest
Bonjour Salim, Sebastien, le Forum

Je vois que Salim Veille !

Bon par contre pour Sébastien pas vraiment tout compris...

Point 1 et 2
Existe-t-il une commande sur VBA, pour n'extraire que des lignes dont au moins une colonne est pleine?

Pour ceci OK... Imaginons que tu aies en "Sheet1" un tableau de A2:F100 et que tu ne veuilles en "Sheet2" une copie de ces données que si la colonne "F" de "Sheet1" n'est pas vide...

Voici une solution :

Sub CopyColumnFnotBlank()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim L1 As Integer, L2 As Integer
Dim Plage As Range
Dim Cell As Range

With ThisWorkbook
Set WS1 = .Worksheets("Sheet1")
Set WS2 = .Worksheets("Sheet2")
End With

Set Plage = WS1.Range("F2:F100")

For Each Cell In Plage
If Cell <> "" Then
L1 = Cell.Row
L2 = WS2.Range("A65536").End(xlUp).Row + 1
WS1.Range("A" & L1 & ":F" & L1).Copy WS2.Range("A" & L2)
End If
Next
End Sub

Point 3
le top du top serait qu'il incrémente les colonnes de mon graphique en conséquence... Est il possible d'incrémenter le champs de prise en compte d'un graphique en conséquence?

Pas Compris ! Mais alors rien !!! lol


Bonne Soirée
@+Thierry
 
S

sebastien

Guest
Bonjour,

J'ai utilisé toute ma concentration pour être clair et cela n'a pas marché!
:)).

Merci.

J'ai essayé ton truc, et il me met:
erreur d'excution 9
indice n'appartient pas à la selection.

La ligne de code est bien trop évolué pour que je comprenne ce qui ne va pas. (j'apprends a utiliser VBA en enregistrant des macros sur excel).

Je vais essayer de reformuler de facon plus précise encore:

1- J'ai un tableau que j'ai filtré. De ce tableau il ne me reste plus que les données qui m'interssent généralement un tableau de 37 colonnes avec des lignes variant de 5 à 30.
Je veux coller quelques colonnes de ces lignes dans une autre feuille de calcul.
Je dois avoir les totaux en dessous, je ne veux pas que le jour ou mes données soient plus importantes pour une raison X me retrouver à effacer mes formats de calcul et d'autres données fixes. Comme ceci se passe au debut de ma macro, j'aurai tout le reste qui partirait en vrille.

2-J'ai ensuite un graphique à faire, j'aimerais lui dire prend cette colonne ci et celle-la, sur le nombre de lignes fraichement créées, ou de s'arreter au premier blanc (je ne veux pas insérer le total dans mes graphiques, je peux laisser un blanc, pour que VBA reconnaisse la zone).

Est-ce que c'est mieux la?
Je ne suis pas sûr!

Merci.

Bonne journée

Et si vous partez, bonnes vacances.
 

Discussions similaires

Statistiques des forums

Discussions
312 350
Messages
2 087 514
Membres
103 572
dernier inscrit
hamzahaha