Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : optimiser la recherche d'une case vide dans excel [ Divers / Débutants ] (Jacky7)

mercredi 21 mai 2008 à 00:38:04 | optimiser la recherche d'une case vide dans excel

Jacky7

Bonsoir à tous,

J'ai realisé un prog qui permet l'écriture dans un fichier Excel, problème lorsque beaucoup de cases et de pages seront remplis j'ai peur que le prog soit trop long et perde des infos le temps de rechercher une case vide.

Pour effectuer la recherche d'une case vide, j'utilise une methode que j'ai trouvé sur le site :

LigneVide = oWk.Sheets(VariablePage).Cells(Rows.Count, "A").End(xlUp).Row + 1

Je me demandais s'il n'était pas possible de garder le numero de la page et de la case en memoire afin que le prog sache où il doit ecrire directement lorsqu'il recevra la prochaine info et non pas rechercher à chaque fois la première case vide de la colonne.

Est ce que quelqu'un aurait une idée sur la facon dont je pourrai m'y prendre ?

Merci.
Jack.

mercredi 21 mai 2008 à 01:15:27 | Re : optimiser la recherche d'une case vide dans excel

jack

Administrateur CodeS-SourceS
Salut ou Re ;-)
Oui, à toi de tester les deux solutions.
Le programme qui va faire cette recherche doit, je pense, être contenu dans une macro.
Cette macro fait partie d'une feuille.
Dans la partie Déclaration de ta feuille (tout en haut), déclare la variable qui mémorisera cette données :
   Dim maLigne As Integer
   Dim maColonne As Integer
Ensuite, dans ton code, tu peux mémoriser tes chiffres n'importe où (dans cette feuille).
Il te suffira donc d'utiliser le contenu de ces variables pour aller à la bonne place : Cells(maColonne, maLigne)
Puis, quand tu auras écrit une valeur dans cette cellule, d'incrémenter la ou les variables pour préparer la prochaine insertion.
Si, au moment où tu veux utiliser tes variables, elles sont vides, il faudra faire une première recherche telle que tu l'as décrite.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

mercredi 21 mai 2008 à 09:35:16 | Re : optimiser la recherche d'une case vide dans excel

jimy neutron

Membre Club
Jack,

"Il te suffira donc d'utiliser le contenu de ces variables pour aller à la bonne place : Cells(maColonne, maLigne)"

Je me permets une petite rectification: Cells(MaLigne, MaColonne)

Jimy

mercredi 21 mai 2008 à 18:34:38 | Re : optimiser la recherche d'une case vide dans excel

Jacky7

Salut,

J'ai testé différentes solutions afin de garder en mémoire le numéro de ligne, mais j'ai un souci lorsque je sort de la boucle if on dirai que la valeur de LigneVide revient automatiquement à zéro ?? (je teste sa valeur avant la prochaine réecriture et LigneVide toujours = 0).
Serait- il possible de garder ce numéro en mémoire (LigneVide) à chaque sorti de boucle (voir même à la fermeture de VB6) afin que mon prog passe dans la 2eme partie de la boucle (ElseIf) ?

Voila ce que j'ai fait :

MsgBox (LigneVide)  

    If LigneVide = 0 Then

LigneVide = oWk.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 
MsgBox (LigneVide)
   
    ElseIf LigneVide > 0 Then
  
LigneVide = LigneVide + 1
MsgBox "MaLigne"
   
    End If

oWk.Sheets(1).Range("A" & LigneVide) = Text2

Est ce quelqu'un aurait une idée ?
Merci
Jack.


mercredi 21 mai 2008 à 21:52:27 | Re : optimiser la recherche d'une case vide dans excel

jimy neutron

Membre Club
Comme t'as proposé Jack, place ta variable en global. Si tu la declare dans la procedure qui l'utilise, elle sera "dimentionnée" (Dim ...) donc réinitialisée à chaque execution.

Public LigneVide As Integer 'dans "Genenrale /Declaration"

Puis,
Private Sub CommandButton1_Click()

MsgBox (LigneVide)

If LigneVide = 0 Then
    LigneVide = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1
    MsgBox (LigneVide)
ElseIf LigneVide > 0 Then
    LigneVide = LigneVide + 1
    MsgBox "MaLigne"
End If
Sheets(1).Range("A" & LigneVide) = Text2

End Sub

Jimy

mardi 27 mai 2008 à 17:40:46 | Re : optimiser la recherche d'une case vide dans excel

Jacky7

Salut jimy neutron,

La solution que tu m'as donné fonctionne merveilleusement bien, je voulais simplement savoir s'il serait possible de garder cette valeur lorsque je ferme mon programme et VB6 en mémoire afin que mon prog sache où il doit écrire lors de la prochaine ouverture ou bien doit-je faire une recherche à chaque fois que je lance mon prog ?

Merci

mercredi 28 mai 2008 à 09:02:19 | Re : optimiser la recherche d'une case vide dans excel

jimy neutron

Membre Club
Salut,

Oui, tu peux garder la valeur de cette variable, mais uniquement dans un fichier texte ou Ini que tu ecris lors de la fermeture de l'appli, et que tu lis à l'ouverture, autrement, elle sera forcement effacer à la fermeture.
La methode est simple, et tu trouveras beaucoup d'exemples dans la rubrique "code" du site, avec les mots clés "Fichier ini" ou "fichier texte"....

A+

Jimy



Cette discussion est classé dans : excel, recherche, prog, case, vide


Répondre à ce message

Sujets en rapport avec ce message

Recherche d'un champ vide Excel via Access [ par darkspoilt ] Bonjour je veux rechercher la premiere champq vide de mon fichier excel en parcourant de colonne a colonne (gauche a droite) donc j'ai écris ceci mais [AIDE] VBA recherche et modification sous EXCEL [ par ribery91720 ] Salut à tous J'ai un petit problème Je vous met mon fichier excel à disposition que vous pouvez télécharger ici : http://www.files-save.com/download-8 Créer un fichier Excel à partir d'Access? [ par Famas54 ] Bonjour,Je souhaite pouvoir renvoyer le résultat d'une recherche dans une base de données et affichée pour le moment dans un sous formulaire situé sou Case à cocher sur Excel - problèmes de mise en page de cases multiples [ par ispettore ] Bonjour à tous,C'est mon premier message sur votre site. Je connais très peu la programmation, et j'ai un cas particulier pour vous. Je suis inspecteu excel 03 - tester la dernière cellule vide d'une colonne + y ajouter le nombre précédant + 1 [ par sardonick ] Bonjour,Je suis débutant et j'utilise naturellement Excel d'une manière atypique et sûrement grossière.Je crée une macro, mais je bute sur deux problè Macro avec Excel [ par vbasamuel ] bonjour,je cherche à "automatiser" un import de fichier via excel avec "enregistrer une macro".seulement je n'arrive pas à trouver l'astuce pour deman sélectionner une colonne sur excel [ par thibaultanguy ] Bonsoir le forum,j'ai besoin de modifier par recherche certaine valeur correspondant à une colonne. Après macro, celle-ci (ci-dessous) me permet avec Excel VBA Boucle de recherche cellules vide [ par Herod1983 ] Bonjour, J'ai fais une boucle simple de recherche de cellules vide dans une colonne A et qui inscrit une valeur dans la première cellule vide trouvée. hyperliens [ par xaeris ] bonjour tout le monde!! Je developpe une application en vba Excel. Dans le cadre de ce developpement je dois a un moment vérifier la validité des lie Recherche chemin d'accés réseau d'un fichier excel [ par lotypedu31 ] Bonjour,Je souhaiterai créer une formule excel qui retrouve le chemin d'accès du fichier en cours.J'ai déjà utilisé Curdir il lui faut un disque et me


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.