OVH Cloud OVH Cloud

aide pour une variable

4 réponses
Avatar
charlotte
Bonjour,

J'aurais besoin d'un coup de pouce pour m'aider sur un code que je n'arrive
pas à adapter :

Sheets("feuil1").Select
For Each h In Range("feuil1!A1:A6000")
If h = txtf Then
C = h.Row
Exit For
End If
Next h
If C <> 0 Then
Sheets("feuil1").Range("b" & C).Value = txt1

Dans ce code, il m'envoie les infos de TXT1, dans la colonne B de la ligne
correspondante au numéro saisie dans TXTF. Je voudrais pouvoir lui dire
d'envoyer non pas en B mais dans la dernière cellule vide de cette ligne.
Donc, en C si B est déjà rempli. Par contre, j'ai au moins 20 TXT qui
peuvent ne pas être tous remplies. Je voudrais qu'ils m'envois les infos à
la suite sans avoir de colonnes vides.
Exemple: TXTF=2 TXT1="" TXT2=rouge TXT3="" TXT4=petit TXT5=""
TXT6="" TXT7=bon
Donc, les infos seront envoyés sur la ligne 2 et en B2=rouge C2=petit D2=bon

Merci pour votre aide

Charlotte

4 réponses

Avatar
michdenis
Bonjour Charlotte,

Je te suggère fortement de réécrire ta question sans tenir compte de la procédure
que tu as soumise. à plus d'un égard, elle semble déficiente en rapport à ce que
tu cherches...

À partir de ce que j'ai pu comprendre, il serait opportum d'utiliser la méthode "Find"
au lieu de boucler sur toutes les cellules de la plage de données.

Cependant, As-tu plusieurs lignes de la plage "Range("feuil1!A1:A6000")"
qui contient txtf ? txtf est une variable ? Si oui, que contient-elle ? valeur numérique, date, texte...
Est-ce que tu dois appliquer une procédure pour chacune des valeurs txtf trouvés dans la colonne?

Et quelle est la procédure que tu veux appliquer lorsque tu trouves dans ladite valeur txtf
dans la colonne que tu as spécifiée ?


Salutations!





"charlotte" a écrit dans le message de news: dsajsp$rio$
Bonjour,

J'aurais besoin d'un coup de pouce pour m'aider sur un code que je n'arrive
pas à adapter :

Sheets("feuil1").Select
For Each h In Range("feuil1!A1:A6000")
If h = txtf Then
C = h.Row
Exit For
End If
Next h
If C <> 0 Then
Sheets("feuil1").Range("b" & C).Value = txt1

Dans ce code, il m'envoie les infos de TXT1, dans la colonne B de la ligne
correspondante au numéro saisie dans TXTF. Je voudrais pouvoir lui dire
d'envoyer non pas en B mais dans la dernière cellule vide de cette ligne.
Donc, en C si B est déjà rempli. Par contre, j'ai au moins 20 TXT qui
peuvent ne pas être tous remplies. Je voudrais qu'ils m'envois les infos à
la suite sans avoir de colonnes vides.
Exemple: TXTF=2 TXT1="" TXT2=rouge TXT3="" TXT4=petit TXT5=""
TXT6="" TXT7=bon
Donc, les infos seront envoyés sur la ligne 2 et en B2=rouge C2=petit D2=bon

Merci pour votre aide

Charlotte
Avatar
charlotte
Bonsoir michdenis,

Je revois ma copie, désolée.

Sur ma feuille excel "feuil1", j'ai des saisies variables (du texte ou bien
des chiffres): la ligne 1 peut être remplie sur 3 colonnes alors que la
ligne2 sur 5 colonnes . Chaque ligne correspond à une facture. En A, c'est
le numéro de fact, en B le nom du client en C le prénom et à partir de D les
articles. J'ai déjà 10 lignes de remplies, donc 10 factures. Je voudrais
pouvoir rajouter des articles dans les factures déjà saisies. C'est pour
cela que via un formulaire (userform1), l'utilisateur renseigne (dans TXTF)
le numéro de facture qu'il veut compléter, et ensuite saisie des articles
par le biais des TXT1, TXT2......
Le numéro dans TXTF peut aller de 1 à 1000. Quand il sort du formulaire en
cliquant sur valid, les saisies des textbox doivent se tranférer sur ma
feuille excel à la ligne correspondant au numéro de facture saisie dans
TXTF.
Donc, j'avais mis For Each h In Range("feuil1!A1:A6000") pour balayer ma
colonne A pour trouver le même numéro que celui saisie dans TXTF. Une fois,
que la macro a trouvé la ligne correspondant au numéro de fact de TXTF, elle
envoie, dans feuil1, les élements saisies dans les TXT1, TXT2....à partir de
la dernière cellule vide de cette ligne. Les nouvelles saisies viennent à la
suite des autres.
L'utilisateur ne peut modifier qu'une facture, donc qu'une ligne à la fois.

J'espère avoir été un peu plus clair que tout à l'heure...?????
Charlotte

"michdenis" a écrit dans le message de news:

Bonjour Charlotte,

Je te suggère fortement de réécrire ta question sans tenir compte de la
procédure
que tu as soumise. à plus d'un égard, elle semble déficiente en rapport à
ce que
tu cherches...

À partir de ce que j'ai pu comprendre, il serait opportum d'utiliser la
méthode "Find"
au lieu de boucler sur toutes les cellules de la plage de données.

Cependant, As-tu plusieurs lignes de la plage "Range("feuil1!A1:A6000")"
qui contient txtf ? txtf est une variable ? Si oui, que contient-elle ?
valeur numérique, date, texte...
Est-ce que tu dois appliquer une procédure pour chacune des valeurs txtf
trouvés dans la colonne?

Et quelle est la procédure que tu veux appliquer lorsque tu trouves dans
ladite valeur txtf
dans la colonne que tu as spécifiée ?


Salutations!





"charlotte" a écrit dans le message de news:
dsajsp$rio$
Bonjour,

J'aurais besoin d'un coup de pouce pour m'aider sur un code que je
n'arrive
pas à adapter :

Sheets("feuil1").Select
For Each h In Range("feuil1!A1:A6000")
If h = txtf Then
C = h.Row
Exit For
End If
Next h
If C <> 0 Then
Sheets("feuil1").Range("b" & C).Value = txt1

Dans ce code, il m'envoie les infos de TXT1, dans la colonne B de la ligne
correspondante au numéro saisie dans TXTF. Je voudrais pouvoir lui dire
d'envoyer non pas en B mais dans la dernière cellule vide de cette ligne.
Donc, en C si B est déjà rempli. Par contre, j'ai au moins 20 TXT qui
peuvent ne pas être tous remplies. Je voudrais qu'ils m'envois les infos à
la suite sans avoir de colonnes vides.
Exemple: TXTF=2 TXT1="" TXT2=rouge TXT3="" TXT4=petit
TXT5=""
TXT6="" TXT7=bon
Donc, les infos seront envoyés sur la ligne 2 et en B2=rouge C2=petit
D2=bon

Merci pour votre aide

Charlotte





Avatar
michdenis
Bonjour Charlotte,

voici un petit exemple vite fait illustrant une façon de procéder.
évidemment, tu peux ajouter plus de textbox... c'est le même principe


http://cjoint.com/?chuWyVKFpo


Salutations!



"charlotte" a écrit dans le message de news:
Bonsoir michdenis,

Je revois ma copie, désolée.

Sur ma feuille excel "feuil1", j'ai des saisies variables (du texte ou bien
des chiffres): la ligne 1 peut être remplie sur 3 colonnes alors que la
ligne2 sur 5 colonnes . Chaque ligne correspond à une facture. En A, c'est
le numéro de fact, en B le nom du client en C le prénom et à partir de D les
articles. J'ai déjà 10 lignes de remplies, donc 10 factures. Je voudrais
pouvoir rajouter des articles dans les factures déjà saisies. C'est pour
cela que via un formulaire (userform1), l'utilisateur renseigne (dans TXTF)
le numéro de facture qu'il veut compléter, et ensuite saisie des articles
par le biais des TXT1, TXT2......
Le numéro dans TXTF peut aller de 1 à 1000. Quand il sort du formulaire en
cliquant sur valid, les saisies des textbox doivent se tranférer sur ma
feuille excel à la ligne correspondant au numéro de facture saisie dans
TXTF.
Donc, j'avais mis For Each h In Range("feuil1!A1:A6000") pour balayer ma
colonne A pour trouver le même numéro que celui saisie dans TXTF. Une fois,
que la macro a trouvé la ligne correspondant au numéro de fact de TXTF, elle
envoie, dans feuil1, les élements saisies dans les TXT1, TXT2....à partir de
la dernière cellule vide de cette ligne. Les nouvelles saisies viennent à la
suite des autres.
L'utilisateur ne peut modifier qu'une facture, donc qu'une ligne à la fois.

J'espère avoir été un peu plus clair que tout à l'heure...?????
Charlotte

"michdenis" a écrit dans le message de news:

Bonjour Charlotte,

Je te suggère fortement de réécrire ta question sans tenir compte de la
procédure
que tu as soumise. à plus d'un égard, elle semble déficiente en rapport à
ce que
tu cherches...

À partir de ce que j'ai pu comprendre, il serait opportum d'utiliser la
méthode "Find"
au lieu de boucler sur toutes les cellules de la plage de données.

Cependant, As-tu plusieurs lignes de la plage "Range("feuil1!A1:A6000")"
qui contient txtf ? txtf est une variable ? Si oui, que contient-elle ?
valeur numérique, date, texte...
Est-ce que tu dois appliquer une procédure pour chacune des valeurs txtf
trouvés dans la colonne?

Et quelle est la procédure que tu veux appliquer lorsque tu trouves dans
ladite valeur txtf
dans la colonne que tu as spécifiée ?


Salutations!





"charlotte" a écrit dans le message de news:
dsajsp$rio$
Bonjour,

J'aurais besoin d'un coup de pouce pour m'aider sur un code que je
n'arrive
pas à adapter :

Sheets("feuil1").Select
For Each h In Range("feuil1!A1:A6000")
If h = txtf Then
C = h.Row
Exit For
End If
Next h
If C <> 0 Then
Sheets("feuil1").Range("b" & C).Value = txt1

Dans ce code, il m'envoie les infos de TXT1, dans la colonne B de la ligne
correspondante au numéro saisie dans TXTF. Je voudrais pouvoir lui dire
d'envoyer non pas en B mais dans la dernière cellule vide de cette ligne.
Donc, en C si B est déjà rempli. Par contre, j'ai au moins 20 TXT qui
peuvent ne pas être tous remplies. Je voudrais qu'ils m'envois les infos à
la suite sans avoir de colonnes vides.
Exemple: TXTF=2 TXT1="" TXT2=rouge TXT3="" TXT4=petit
TXT5=""
TXT6="" TXT7=bon
Donc, les infos seront envoyés sur la ligne 2 et en B2=rouge C2=petit
D2=bon

Merci pour votre aide

Charlotte





Avatar
charlotte
Merci.

Je vais étudier ton exemple et l'adapter à mes besoins.

Bonne journée
Charlotte
"michdenis" a écrit dans le message de news:
eJNBn#
Bonjour Charlotte,

voici un petit exemple vite fait illustrant une façon de procéder.
évidemment, tu peux ajouter plus de textbox... c'est le même principe


http://cjoint.com/?chuWyVKFpo


Salutations!



"charlotte" a écrit dans le message de news:


Bonsoir michdenis,

Je revois ma copie, désolée.

Sur ma feuille excel "feuil1", j'ai des saisies variables (du texte ou
bien

des chiffres): la ligne 1 peut être remplie sur 3 colonnes alors que la
ligne2 sur 5 colonnes . Chaque ligne correspond à une facture. En A, c'est
le numéro de fact, en B le nom du client en C le prénom et à partir de D
les

articles. J'ai déjà 10 lignes de remplies, donc 10 factures. Je voudrais
pouvoir rajouter des articles dans les factures déjà saisies. C'est pour
cela que via un formulaire (userform1), l'utilisateur renseigne (dans
TXTF)

le numéro de facture qu'il veut compléter, et ensuite saisie des articles
par le biais des TXT1, TXT2......
Le numéro dans TXTF peut aller de 1 à 1000. Quand il sort du formulaire
en

cliquant sur valid, les saisies des textbox doivent se tranférer sur ma
feuille excel à la ligne correspondant au numéro de facture saisie dans
TXTF.
Donc, j'avais mis For Each h In Range("feuil1!A1:A6000") pour balayer ma
colonne A pour trouver le même numéro que celui saisie dans TXTF. Une
fois,

que la macro a trouvé la ligne correspondant au numéro de fact de TXTF,
elle

envoie, dans feuil1, les élements saisies dans les TXT1, TXT2....à partir
de

la dernière cellule vide de cette ligne. Les nouvelles saisies viennent à
la

suite des autres.
L'utilisateur ne peut modifier qu'une facture, donc qu'une ligne à la
fois.


J'espère avoir été un peu plus clair que tout à l'heure...?????
Charlotte

"michdenis" a écrit dans le message de news:

Bonjour Charlotte,

Je te suggère fortement de réécrire ta question sans tenir compte de la
procédure
que tu as soumise. à plus d'un égard, elle semble déficiente en rapport
à


ce que
tu cherches...

À partir de ce que j'ai pu comprendre, il serait opportum d'utiliser la
méthode "Find"
au lieu de boucler sur toutes les cellules de la plage de données.

Cependant, As-tu plusieurs lignes de la plage "Range("feuil1!A1:A6000")"
qui contient txtf ? txtf est une variable ? Si oui, que contient-elle ?
valeur numérique, date, texte...
Est-ce que tu dois appliquer une procédure pour chacune des valeurs txtf
trouvés dans la colonne?

Et quelle est la procédure que tu veux appliquer lorsque tu trouves dans
ladite valeur txtf
dans la colonne que tu as spécifiée ?


Salutations!





"charlotte" a écrit dans le message de news:
dsajsp$rio$
Bonjour,

J'aurais besoin d'un coup de pouce pour m'aider sur un code que je
n'arrive
pas à adapter :

Sheets("feuil1").Select
For Each h In Range("feuil1!A1:A6000")
If h = txtf Then
C = h.Row
Exit For
End If
Next h
If C <> 0 Then
Sheets("feuil1").Range("b" & C).Value = txt1

Dans ce code, il m'envoie les infos de TXT1, dans la colonne B de la
ligne


correspondante au numéro saisie dans TXTF. Je voudrais pouvoir lui dire
d'envoyer non pas en B mais dans la dernière cellule vide de cette
ligne.


Donc, en C si B est déjà rempli. Par contre, j'ai au moins 20 TXT qui
peuvent ne pas être tous remplies. Je voudrais qu'ils m'envois les infos
à


la suite sans avoir de colonnes vides.
Exemple: TXTF=2 TXT1="" TXT2=rouge TXT3="" TXT4=petit
TXT5=""
TXT6="" TXT7=bon
Donc, les infos seront envoyés sur la ligne 2 et en B2=rouge C2=petit
D2=bon

Merci pour votre aide

Charlotte