"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)" en
ayant au préalable initialisé Ref="A2:A2,$P$1"
"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$ba4acef3@reader.news.orange.fr...
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)" en
ayant au préalable initialisé Ref="A2:A2,$P$1"
"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)" en
ayant au préalable initialisé Ref="A2:A2,$P$1"
"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes
les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite
dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)"
en
ayant au préalable initialisé Ref="A2:A2,$P$1"
"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$ba4acef3@reader.news.orange.fr...
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes
les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite
dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)"
en
ayant au préalable initialisé Ref="A2:A2,$P$1"
"dyj Orange" a écrit dans le message de groupe de discussion :
4f6a0a3f$0$21472$
Mille excuses pour cet incompréhension. Je vais essayer très plus clair.
Pour augmenter les performance du vba sur une feuille (65000 lignes et 106
colonnes), j'ai trouvé cette solution qui consiste à mettre dans toutes
les
cellules de ma 108ième colonne une formule de type "=CountIf(A2:A2,$P$1)"
Ainsi cette colonne est remplie de 1 si ma formule est vraie et 0 si
fausse.
Après j'applique un filtre sur cette colonne et je me retrouve dans ma
feuille active avec uniquement les valeurs vraies que je copie ensuite
dans
une autre feuille.
Avec une boucle traditionnelle, c'est infernale en temps ... alors qu'avec
ce procédé c'est moins de 10 secondes !!!
J'aimerai si possible ? que cette formule soit dynamique "=CountIf(Ref)"
en
ayant au préalable initialisé Ref="A2:A2,$P$1"
Le string étant par définition très petit, je préfère m'en pass er,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c] then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$
Bonsoir
Le string étant par définition très petit, je préfère m'en pass er, voire que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c] then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapi de
pour retrouver un string de caractères dans une colonne avec la fonctio n
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir 12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i) .Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.
Le string étant par définition très petit, je préfère m'en pass er,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c]=12 then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$ba620...@news.skynet.be...
Bonsoir
Le string étant par définition très petit, je préfère m'en pass er, voire que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c]=12 then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$ba4ac...@reader.news.orange.fr...
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapi de
pour retrouver un string de caractères dans une colonne avec la fonctio n
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir 12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$ba620...@news.skynet.be...
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i) .Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$ba4ac...@reader.news.orange.fr...
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.
Le string étant par définition très petit, je préfère m'en pass er,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c] then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$
Bonsoir
Le string étant par définition très petit, je préfère m'en pass er, voire que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c] then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapi de
pour retrouver un string de caractères dans une colonne avec la fonctio n
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir 12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i) .Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.
Le string étant par définition très petit, je préfère m'en passer,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c] then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$
Bonsoir
Le string étant par définition très petit, je préfère m'en passer, voire
que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c] then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapide
pour retrouver un string de caractères dans une colonne avec la fonction
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie
la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir
12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i).Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.
Le string étant par définition très petit, je préfère m'en passer,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c] then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$ba620...@news.skynet.be...
Bonsoir
Le string étant par définition très petit, je préfère m'en passer, voire
que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c] then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$ba4ac...@reader.news.orange.fr...
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapide
pour retrouver un string de caractères dans une colonne avec la fonction
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie
la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir
12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$ba620...@news.skynet.be...
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i).Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$ba4ac...@reader.news.orange.fr...
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.
Le string étant par définition très petit, je préfère m'en passer,
Petite correction....;
entre interior et colorIndex, il faut mettre un . (point) et non un
point-virgule (lapsus claviae)
soit:
For each c in range ("a2:a100")
If [c] then c.interior.colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
4f662d98$0$7697$
Bonsoir
Le string étant par définition très petit, je préfère m'en passer, voire
que
les autres s'en passent aussi.
perso, je me contenterais de ceci......
For each c in range ("a2:a100")
If [c] then c.interior;colorIndex=3
Next
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f65f04f$0$21485$
Merci beaucoup.C'est adapté et inclus dans mon vba.
Du coup je reviens avec une autre question. je cherche une méthode rapide
pour retrouver un string de caractères dans une colonne avec la fonction
suivante:
-----
strChaine="12"
Set rngTrouve = ActiveSheet.Columns(17).Cells.Find( 'what:=strChaine)
----
Si dans cette colonne j'ai les valeurs 1245, 5612, 12, 6912 Il me renvoie
la
première occurrence trouvée 1234 (ligne 1)alors que je m'attends à avoir
12
(ligne 3)
Ou est mon erreur de code. Merci
"Jacquouille" a écrit dans le message de groupe de discussion :
4f64b550$0$7685$
Bonjour
La dernière colonne:
Sub Rechercher_la_dernière_colonne()
Range("IV1").Select
Selection.End(xlToLeft).Select
End Sub
----------------------------
Supprimer les lignes dont la cellule K est différente de "couvert"
La ligne 1 est réservée au titre de colonne.
Sub Je_supprime_ligne()
For i = [K65536].End(3).Row To 2 Step -1
For Each c In Range("K2:K" & i)
If Range("K" & i).Value <> "couvert" Then Rows(i).Delete
Next
Next
End Sub
------------------------------------
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"dyj Orange" a écrit dans le message de groupe de discussion :
4f64774b$0$12498$
Bonjour au groupe,
Sur un très gros fichier Excel (30000-40000 lignes, 40-50 colonnes), je
voudrai faire deux choses:
1. Connaitre la première colonne disponible pour y insérer des infos.
2. Sur une colonne particulière "K", dont les cellules peuvent avoir
plusieurs valeurs, je ne voudrai que conserver les lignes où la cellule
correspondant à la colonne K a pour valeur "couvert".
Je vous remercie pour votre aide.