Je cherche comment réaliser une boucle for permettant d'exécuter une
suite d'opérations à chaque ligne, mais il faut que cette boucle
s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la
ligne en cours et une colonne spécifique.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Fauconnier
Bonjour
Le plus simple est d'utiliser une boucle For Each sur les cellules de la plage
Dim Cellule as Range For Each Cellule in range("a1:a100" if cellule="" then exit for ... ... Next Cellule
-- Cela convient-il? ---- Pierre Fauconnier "N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos Beaucarne)
bertrand LATOUR wrote:
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une suite d'opérations à chaque ligne, mais il faut que cette boucle s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la ligne en cours et une colonne spécifique.
Merci
Bertrand
Bonjour
Le plus simple est d'utiliser une boucle For Each sur les cellules de la
plage
Dim Cellule as Range
For Each Cellule in range("a1:a100"
if cellule="" then exit for
...
...
Next Cellule
--
Cela convient-il?
----
Pierre Fauconnier
"N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos
Beaucarne)
bertrand LATOUR wrote:
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une
suite d'opérations à chaque ligne, mais il faut que cette boucle
s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la
ligne en cours et une colonne spécifique.
Le plus simple est d'utiliser une boucle For Each sur les cellules de la plage
Dim Cellule as Range For Each Cellule in range("a1:a100" if cellule="" then exit for ... ... Next Cellule
-- Cela convient-il? ---- Pierre Fauconnier "N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos Beaucarne)
bertrand LATOUR wrote:
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une suite d'opérations à chaque ligne, mais il faut que cette boucle s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la ligne en cours et une colonne spécifique.
Merci
Bertrand
Frédo P.
Bonjour Bertrand Tout dépend des opérations à réaliser
--
Fred "bertrand LATOUR" a écrit dans le message de news:
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une suite d'opérations à chaque ligne, mais il faut que cette boucle s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la ligne en cours et une colonne spécifique.
Merci
Bertrand
Bonjour Bertrand
Tout dépend des opérations à réaliser
--
fredpost@free.fr
Fred
"bertrand LATOUR" <bertrand.latour@temex.fr> a écrit dans le message de
news: mesnews.51f27d39.f0bad016.7.1556@temex.fr...
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une
suite d'opérations à chaque ligne, mais il faut que cette boucle
s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la
ligne en cours et une colonne spécifique.
Bonjour Bertrand Tout dépend des opérations à réaliser
--
Fred "bertrand LATOUR" a écrit dans le message de news:
Boujours a tous !
Je cherche comment réaliser une boucle for permettant d'exécuter une suite d'opérations à chaque ligne, mais il faut que cette boucle s'arrêt lorsqu'il n'y a plus de valeur dans la cellule correspndant la ligne en cours et une colonne spécifique.
Merci
Bertrand
bertrand LATOUR
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.
Merci
Bertrand
En fait je cherche à mettre un forme un fichier ascii par une macro
Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour
demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies
mais le résultat n'est pas complet. (suppression de qq ligne du début
formant l'entête, conversion des données de la première colonne sur
plusieurs colonnes, changement de l'ordre des colonnes , insertion de
colonnes)
Il me manque la mise au format de certaines colonne (exemple : fois
1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne
si la ligne n'est pas vide, puis insertion du nouvel entête et fin de
doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux
dernières opérations fonctionnent car reponpées sur une macro
existance).
J'ai en ma possession deux fichiers exemples, source.asc et
résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une
meilleure compréhension.
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.
Merci
Bertrand
Pierre Fauconnier
Ce que l'on t'a proposé ne t'aide pas ?
Pierre
bertrand LATOUR wrote:
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.
Merci
Bertrand
Ce que l'on t'a proposé ne t'aide pas ?
Pierre
bertrand LATOUR wrote:
En fait je cherche à mettre un forme un fichier ascii par une macro
Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour
demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies
mais le résultat n'est pas complet. (suppression de qq ligne du début
formant l'entête, conversion des données de la première colonne sur
plusieurs colonnes, changement de l'ordre des colonnes , insertion de
colonnes)
Il me manque la mise au format de certaines colonne (exemple : fois
1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un
colonne si la ligne n'est pas vide, puis insertion du nouvel entête
et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux
dernières opérations fonctionnent car reponpées sur une macro
existance).
J'ai en ma possession deux fichiers exemples, source.asc et
résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une
meilleure compréhension.
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.
Merci
Bertrand
bertrand LATOUR
En fait je ne comprent pas bien l'instruction, ni comment la mettre en place ! J'aurai pensé un truc du genre boucle For avec une variable i correspondant au numéro de la ligne. Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas le choix le plus judicieux dans mon cas ! Par exemple, je pensais utiliser le boucle pour écrire dans une case la valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la dernière ligne pleine du tableau ( c'est un tableau importé dont la longueur est variable)
Quel est donc le choix le plus judicieux ?
Merci
Bertrand
En fait je ne comprent pas bien l'instruction, ni comment la mettre en
place !
J'aurai pensé un truc du genre boucle For avec une variable i
correspondant au numéro de la ligne.
Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas
le choix le plus judicieux dans mon cas !
Par exemple, je pensais utiliser le boucle pour écrire dans une case la
valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la dernière
ligne pleine du tableau ( c'est un tableau importé dont la longueur est
variable)
En fait je ne comprent pas bien l'instruction, ni comment la mettre en place ! J'aurai pensé un truc du genre boucle For avec une variable i correspondant au numéro de la ligne. Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas le choix le plus judicieux dans mon cas ! Par exemple, je pensais utiliser le boucle pour écrire dans une case la valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la dernière ligne pleine du tableau ( c'est un tableau importé dont la longueur est variable)
Quel est donc le choix le plus judicieux ?
Merci
Bertrand
Pierre Fauconnier
En fait, si j'ai bien compris, tu veux réaliser une suite d'instructions sur chaque cellule d'une colonne jusqu'à la fin de l'importation des données.
Je pense donc que le choix le plus judicieux est de boucler sur les cellules avec For each Cellule in range...
Pour cela, tu dois déclarer une variable objet Cellule en tant que Range Dim Cellule as Range Cette ligne est à mettre au début de ta procédure, pour une meilleure lisibilité. Puis tu boucles avec For each Cellule in range("a2:a" & range("a65536").End(xlUp) ... ... Next Cellule
Les opérations à effectuer sur les cellules remplaceront les ...
En fait, tu remplaces simplement ta boucle for i ... par for each cellule in ...
L'avantage est que tu peux te servir de l'objet Cellule dans tes opérations
-- Cela convient-il? ---- Pierre Fauconnier "N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos Beaucarne)
bertrand LATOUR wrote:
En fait je ne comprent pas bien l'instruction, ni comment la mettre en place ! J'aurai pensé un truc du genre boucle For avec une variable i correspondant au numéro de la ligne. Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas le choix le plus judicieux dans mon cas ! Par exemple, je pensais utiliser le boucle pour écrire dans une case la valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la dernière ligne pleine du tableau ( c'est un tableau importé dont la longueur est variable)
Quel est donc le choix le plus judicieux ?
Merci
Bertrand
En fait, si j'ai bien compris, tu veux réaliser une suite d'instructions sur
chaque cellule d'une colonne jusqu'à la fin de l'importation des données.
Je pense donc que le choix le plus judicieux est de boucler sur les cellules
avec
For each Cellule in range...
Pour cela, tu dois déclarer une variable objet Cellule en tant que Range
Dim Cellule as Range
Cette ligne est à mettre au début de ta procédure, pour une meilleure
lisibilité.
Puis tu boucles avec
For each Cellule in range("a2:a" & range("a65536").End(xlUp)
...
...
Next Cellule
Les opérations à effectuer sur les cellules remplaceront les ...
En fait, tu remplaces simplement ta boucle for i ... par for each cellule in
...
L'avantage est que tu peux te servir de l'objet Cellule dans tes opérations
--
Cela convient-il?
----
Pierre Fauconnier
"N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos
Beaucarne)
bertrand LATOUR wrote:
En fait je ne comprent pas bien l'instruction, ni comment la mettre en
place !
J'aurai pensé un truc du genre boucle For avec une variable i
correspondant au numéro de la ligne.
Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas
le choix le plus judicieux dans mon cas !
Par exemple, je pensais utiliser le boucle pour écrire dans une case
la valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la
dernière ligne pleine du tableau ( c'est un tableau importé dont la
longueur est variable)
En fait, si j'ai bien compris, tu veux réaliser une suite d'instructions sur chaque cellule d'une colonne jusqu'à la fin de l'importation des données.
Je pense donc que le choix le plus judicieux est de boucler sur les cellules avec For each Cellule in range...
Pour cela, tu dois déclarer une variable objet Cellule en tant que Range Dim Cellule as Range Cette ligne est à mettre au début de ta procédure, pour une meilleure lisibilité. Puis tu boucles avec For each Cellule in range("a2:a" & range("a65536").End(xlUp) ... ... Next Cellule
Les opérations à effectuer sur les cellules remplaceront les ...
En fait, tu remplaces simplement ta boucle for i ... par for each cellule in ...
L'avantage est que tu peux te servir de l'objet Cellule dans tes opérations
-- Cela convient-il? ---- Pierre Fauconnier "N'insulte pas le crocodile avant d'avoir traversé la rivière" (Julos Beaucarne)
bertrand LATOUR wrote:
En fait je ne comprent pas bien l'instruction, ni comment la mettre en place ! J'aurai pensé un truc du genre boucle For avec une variable i correspondant au numéro de la ligne. Cependant maintenant j'ai un doute ! La bouce for n'est peut être pas le choix le plus judicieux dans mon cas ! Par exemple, je pensais utiliser le boucle pour écrire dans une case la valeur "M2" dans la colonne A, sachant qu'il faut arrêter à la dernière ligne pleine du tableau ( c'est un tableau importé dont la longueur est variable)
Quel est donc le choix le plus judicieux ?
Merci
Bertrand
Lydya
Bonjour Bertrand,
l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête
Sub ValM2DansColA() Dim i As Long Dim NbLignes As Long NbLignes = ActiveSheet.UsedRange.Rows.Count For i = 2 To NbLignes Step 1 If Application.CountA(Rows(i)) <> 0 Then Cells(i, "A") = [M2] End If Next i [A1] = "NouvelEntete" End Sub
Ok ?
Lydia ========= "bertrand LATOUR" a écrit dans le message de news:
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.
Merci
Bertrand
Bonjour Bertrand,
l'ajout de la valeur "M2" dans toute un colonne
si la ligne n'est pas vide, puis insertion du nouvel entête
Sub ValM2DansColA()
Dim i As Long
Dim NbLignes As Long
NbLignes = ActiveSheet.UsedRange.Rows.Count
For i = 2 To NbLignes Step 1
If Application.CountA(Rows(i)) <> 0 Then
Cells(i, "A") = [M2]
End If
Next i
[A1] = "NouvelEntete"
End Sub
Ok ?
Lydia
=========
"bertrand LATOUR" <bertrand.latour@temex.fr> a écrit dans le message de
news:mesnews.52347d39.3d236a97.8.1556@temex.fr...
En fait je cherche à mettre un forme un fichier ascii par une macro
Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour
demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies
mais le résultat n'est pas complet. (suppression de qq ligne du début
formant l'entête, conversion des données de la première colonne sur
plusieurs colonnes, changement de l'ordre des colonnes , insertion de
colonnes)
Il me manque la mise au format de certaines colonne (exemple : fois
1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne
si la ligne n'est pas vide, puis insertion du nouvel entête et fin de
doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux
dernières opérations fonctionnent car reponpées sur une macro
existance).
J'ai en ma possession deux fichiers exemples, source.asc et
résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une
meilleure compréhension.
l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête
Sub ValM2DansColA() Dim i As Long Dim NbLignes As Long NbLignes = ActiveSheet.UsedRange.Rows.Count For i = 2 To NbLignes Step 1 If Application.CountA(Rows(i)) <> 0 Then Cells(i, "A") = [M2] End If Next i [A1] = "NouvelEntete" End Sub
Ok ?
Lydia ========= "bertrand LATOUR" a écrit dans le message de news:
En fait je cherche à mettre un forme un fichier ascii par une macro Excel.
A l'ouverture d'un doc Excel, ma macro se lance automatiquement, pour demande quel fichier ouvrir (dans mon cas c'est un ".asc").
Le fichier souvre donc mais sur une colonne.
Je dois donc le mettre en forme : j'ai déjà qq. opérations réussies mais le résultat n'est pas complet. (suppression de qq ligne du début formant l'entête, conversion des données de la première colonne sur plusieurs colonnes, changement de l'ordre des colonnes , insertion de colonnes) Il me manque la mise au format de certaines colonne (exemple : fois 1000 et avec 1 decimale)l'ajout de la valeur "M2" dans toute un colonne si la ligne n'est pas vide, puis insertion du nouvel entête et fin de doc
Puis je dois l'enregistrer au format ".mnt" et le fermer (ces deux dernières opérations fonctionnent car reponpées sur une macro existance). J'ai en ma possession deux fichiers exemples, source.asc et résultat.mnt de 15Ko et 9Ko. Je peux les envoyer par mail pour une meilleure compréhension.