[VBA] Récupération de valeurs variables
Résolu
digsaw_-
Messages postés
489
Date d'inscription
Statut
Membre
Dernière intervention
-
trankill076 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
trankill076 Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila j'ai une boucle qui récupère dans la feuille1, colonne A les valeurs des cellules, et qui les écris ensuite sur la feuille2 colonne A jusqu'a ce qu'il n'y ai plus de valeurs:
C'est à dire colonne A feuille 1 si elle contient 46 lignes, dans la feuille2 il y aura 46 lignes..
Le problème est les valeurs des cellules.. J'aimerais récupérer les valeurs de chaques cellules pour les mettre dans la feuille2. Par exemple si la feuille 1 contient dans 1 cellule la valeur 123456 et dans la deuxieme cellule : 654321
Dans la deuxieme feuille sa sera la meme chose.. seulement ma boucle inscrit qu'il y ai 10 lignes ou 46 lignes la derniere valeur trouvée...
sachant que le nombre de lignes ne peut etre défini..
merci de votre aide !
Voila j'ai une boucle qui récupère dans la feuille1, colonne A les valeurs des cellules, et qui les écris ensuite sur la feuille2 colonne A jusqu'a ce qu'il n'y ai plus de valeurs:
C'est à dire colonne A feuille 1 si elle contient 46 lignes, dans la feuille2 il y aura 46 lignes..
Le problème est les valeurs des cellules.. J'aimerais récupérer les valeurs de chaques cellules pour les mettre dans la feuille2. Par exemple si la feuille 1 contient dans 1 cellule la valeur 123456 et dans la deuxieme cellule : 654321
Dans la deuxieme feuille sa sera la meme chose.. seulement ma boucle inscrit qu'il y ai 10 lignes ou 46 lignes la derniere valeur trouvée...
sachant que le nombre de lignes ne peut etre défini..
merci de votre aide !
A voir également:
- [VBA] Récupération de valeurs variables
- Convertisseur récupération de texte - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Le serveur de récupération n'a pas pu être contacté - Forum MacOS
- Excel liste de valeurs - Guide
- Impossible de récupérer mon compte gmail - Guide
16 réponses
Salut!
Je n'ai pas trop compris ca :
Dans la deuxieme feuille sa sera la meme chose.. seulement ma boucle inscrit qu'il y ai 10 lignes ou 46 lignes la derniere valeur trouvée...
Peut-tu poster ton fichier, ou un semblant de fichier sur ?
www.cijoint.fr
Je n'ai pas trop compris ca :
Dans la deuxieme feuille sa sera la meme chose.. seulement ma boucle inscrit qu'il y ai 10 lignes ou 46 lignes la derniere valeur trouvée...
Peut-tu poster ton fichier, ou un semblant de fichier sur ?
www.cijoint.fr
Dim derniereLigne3 As Integer Dim monTexte3 As String derniereLigne3 = Sheets(1).Range("a27").End(xlDown).Row - 27 For l = 1 To derniereLigne3 monTexte3 = Sheets(1).Range("a" & l).Value For i = 1 To derniereLigne3 Sheets(2).Range("C1").Offset(i, 0).Value = monTexte3 Next Next
Tu ne peux pas tenter cela?
ou bien :
Dim derniereLigne3 As Integer Dim monTexte3 As String derniereLigne3 = Sheets(1).Range("a27").End(xlDown).Row - 27 For l = 1 To derniereLigne3 Sheets(2).Range("C1").Offset(i, 0).Value = Sheets(1).Range("a" & l).Value Next
ou bien :
Dim derniereLigne3 As Integer Dim monTexte3 As String derniereLigne3 = Sheets(1).Range("a27").End(xlDown).Row - 27 For l = 1 To derniereLigne3 Sheets(2).Cells(i,1).Value = Sheets(1).Cells(i,1).Value Next
Alors la premiere refais comme la mienne.. sauf que la sa n'écris qu'une seule fois la derniere valeur de la colonne A feuille1
Et la deuxieme récupère bien les valeur MAIS (car il y en a toujours 1 ^^ ) elle l'écris dans la colonne A de la feuille 2 au lieu de la C bon sa c'est changeable mais sa ne supprime plus les 27 ignes Vides qu'il y a au dessus d'ou le : Row - 27 qu'il y a dans ma boucle..
Et la deuxieme récupère bien les valeur MAIS (car il y en a toujours 1 ^^ ) elle l'écris dans la colonne A de la feuille 2 au lieu de la C bon sa c'est changeable mais sa ne supprime plus les 27 ignes Vides qu'il y a au dessus d'ou le : Row - 27 qu'il y a dans ma boucle..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim derniereLigne3 As Integer Dim monTexte3 As String derniereLigne3 = Sheets(1).Range("a27").End(xlDown).Row - 27 For l = 27 To derniereLigne3 Sheets(2).Cells(i,1).Value = Sheets(1).Cells(i,1).Value Next
et comme ca? Si tu commence ta boucle à la ligne 27?
J'ai trouvé poyurquoi sa s'arrétais on a fait une érreur toute pourrie c'est la variable i = 1 to derniereLigne on avait laissé L..
Mainteant sa marche je récupère bien les valeurs ! Mais il les inscrits avec les caces vides qu'il y a au dessus.. 25 lignes ici..
Mainteant sa marche je récupère bien les valeurs ! Mais il les inscrits avec les caces vides qu'il y a au dessus.. 25 lignes ici..
Huhuh... pas pensé... mais 27 - 27, ca fait 0...
Essai avec un -26
et si ca ne marche pas , essai:
Essai avec un -26
et si ca ne marche pas , essai:
For l = 27 To derniereLigne3 i = i - 26 Sheets(2).Cells(i,1).Value = Sheets(1).Cells(i,1).Value Next
Je veux bien essayer mais a quoi sert le l = 27 To derniereLigne3 ? Car le l ne réapparait pas..
Et le - 26 marche seulement sa me bouffe la premeire ligne qui est le libellé de la colonne
Et le - 26 marche seulement sa me bouffe la premeire ligne qui est le libellé de la colonne
Ne t'excuse pas c'est pas grave =)
j'ai donc ceci
For i = 27 To derniereLigne3
i = i - 26
Sheets(2).Cells(i, 3).Value = Sheets(1).Cells(i, 1).Value
Next
Et sa me met une erreure..
j'ai donc ceci
For i = 27 To derniereLigne3
i = i - 26
Sheets(2).Cells(i, 3).Value = Sheets(1).Cells(i, 1).Value
Next
Et sa me met une erreure..
Oui bah je suis con... j'ai mis - 25 au lieu de - 26 carje t'ai dis que le - 26 me bouffais le libellé... -_-
des fois c'eszt en face de nous et on le vois pas ! ^^
Merci beaucou pour ton aide !
des fois c'eszt en face de nous et on le vois pas ! ^^
Merci beaucou pour ton aide !
Bonjour,
1- suis surpris que ceci fonctionne :
Mais si tu le dis...
2- la déclaration des variables est très importante lorsque l'on parle de code VBA. Il faut déclarer toutes les variables, et leur donner un nom explicite d'au moins 3 caractères. Les i et autres l sont à prohiber, vous en aveze eu la preuve à patauger au début de cette discussion.
A titre d'exemple :
1- une boucle sur les lignes
2- Sur les colonnes?
3- La dernière ligne non vide de la colonne A :
1- suis surpris que ceci fonctionne :
For i = 27 To derniereLigne3 i = i - 26 Sheets(2).Cells(i, 3).Value = Sheets(1).Cells(i, 1).Value Next
Mais si tu le dis...
2- la déclaration des variables est très importante lorsque l'on parle de code VBA. Il faut déclarer toutes les variables, et leur donner un nom explicite d'au moins 3 caractères. Les i et autres l sont à prohiber, vous en aveze eu la preuve à patauger au début de cette discussion.
A titre d'exemple :
1- une boucle sur les lignes
Dim Lign As Integer For Lign = 1 To 20 Cells(Lign, 1) = "Toto" & Lign Nextest immédiatement explicite. Non?
2- Sur les colonnes?
Dim Col As Integer For Col = 1 To 20 Cells(2, Col) = "Toto" & Col Next
3- La dernière ligne non vide de la colonne A :
Dim DernLign As Long DernLign = Sheets("Feuil1").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
Ou plus simplement avec un While
La boucle copie chaque cellule de la première colonne de la première feuille dans la cellule correspondante de la feuille 2 et s'arrête dès qu'elle trouve une cellule vide
Je suis d'accord avec pijaku en ce qui concerne les noms des variables
i = 1 While Feuil1.Cells(i, 1) <> "" Feuil2.Cells(i, 1) = Feuil1.Cells(i, 1) i = i + 1 Wend
La boucle copie chaque cellule de la première colonne de la première feuille dans la cellule correspondante de la feuille 2 et s'arrête dès qu'elle trouve une cellule vide
Je suis d'accord avec pijaku en ce qui concerne les noms des variables
Je vais essayer de te donner un fichier similaire.
Merci pour ton aide
Tu n'as pas du placer correctement ta copie ;)