[VBA] Récupération de valeurs variables
Résolu/Fermé
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
-
27 juin 2011 à 10:48
trankill076 Messages postés 74 Date d'inscription mercredi 25 mai 2011 Statut Membre Dernière intervention 2 juin 2014 - 27 juin 2011 à 14:14
trankill076 Messages postés 74 Date d'inscription mercredi 25 mai 2011 Statut Membre Dernière intervention 2 juin 2014 - 27 juin 2011 à 14:14
A voir également:
- [VBA] Récupération de valeurs variables
- Convertisseur récupération de texte - Guide
- Mail facebook code de recuperation ✓ - Forum Facebook
- Impossible de récupérer mon compte gmail - Guide
- Récupérer au terminal de fret - Forum Consommation & Internet
16 réponses
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
27 juin 2011 à 10:50
27 juin 2011 à 10:50
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
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:21
27 juin 2011 à 11:21
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
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
Modifié par Ctesias le 27/06/2011 à 11:24
Modifié par Ctesias le 27/06/2011 à 11:24
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
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:27
27 juin 2011 à 11:27
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 question
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
27 juin 2011 à 11:31
27 juin 2011 à 11:31
Dim 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?
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:35
27 juin 2011 à 11:35
Sa s'arrete a la 36eme valeur (alors qu'il y en a plus) et sa n'écris que la derniere (la 36eme)
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:39
27 juin 2011 à 11:39
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..
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
27 juin 2011 à 11:49
27 juin 2011 à 11:49
Sheets(2).Cells(i-27,1).Value = Sheets(1).Cells(i,1).Value
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:55
27 juin 2011 à 11:55
Le cells(i-27,1) (le -27) créé une erreur..
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
Modifié par Ctesias le 27/06/2011 à 11:57
Modifié par Ctesias le 27/06/2011 à 11:57
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
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 11:59
27 juin 2011 à 11:59
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
Ctesias
Messages postés
724
Date d'inscription
lundi 16 mai 2011
Statut
Membre
Dernière intervention
1 décembre 2011
36
27 juin 2011 à 12:00
27 juin 2011 à 12:00
Excuse moi, le copier coller me fais default: remplace ton L par un i
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 12:03
27 juin 2011 à 12:03
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..
digsaw_-
Messages postés
489
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
24 septembre 2013
57
27 juin 2011 à 12:19
27 juin 2011 à 12:19
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 !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
27 juin 2011 à 13:28
27 juin 2011 à 13:28
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
trankill076
Messages postés
74
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
2 juin 2014
21
27 juin 2011 à 14:14
27 juin 2011 à 14:14
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
27 juin 2011 à 11:13
Je vais essayer de te donner un fichier similaire.
Merci pour ton aide
27 juin 2011 à 11:14
Tu n'as pas du placer correctement ta copie ;)