Boucle while - Aide pour une débutante
Fermé
Clarinette13006
Messages postés
6
Date d'inscription
mardi 15 juillet 2014
Statut
Membre
Dernière intervention
17 juillet 2014
-
15 juil. 2014 à 15:12
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 15 juil. 2014 à 17:10
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 15 juil. 2014 à 17:10
A voir également:
- Boucle while - Aide pour une débutante
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Logiciel de programmation pour débutant - Guide
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
5 réponses
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
15 juil. 2014 à 15:53
15 juil. 2014 à 15:53
Bonjour
Un exemple
Cdlmnt
Un exemple
Option Explicit
Const NF = "Feuil1"
Const lideb = 4
Const celns = "R10"
Public Sub Kopie()
Dim li As Long, noserie
With Sheets(NF)
noserie = .Range(celns).Value
li = lideb
While .Range("B" & li) <> ""
.Range("A" & li).Value = noserie
li = li + 1
Wend
End With
End Sub
Cdlmnt
Clarinette13006
Messages postés
6
Date d'inscription
mardi 15 juillet 2014
Statut
Membre
Dernière intervention
17 juillet 2014
15 juil. 2014 à 16:36
15 juil. 2014 à 16:36
Super ! Merci bcp :)
J'ai exactement la meme manip a faire mais a la place d'un num de série, je voudrais mettre une formule
ce que j'ai essayé de faire en remplaçant :
While .Range("B" & li) <> ""
.Range("A" & li).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
li = li + 1
Wend
End With
End Sub
C'est correct ?
J'ai exactement la meme manip a faire mais a la place d'un num de série, je voudrais mettre une formule
ce que j'ai essayé de faire en remplaçant :
While .Range("B" & li) <> ""
.Range("A" & li).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
li = li + 1
Wend
End With
End Sub
C'est correct ?
Clarinette13006
Messages postés
6
Date d'inscription
mardi 15 juillet 2014
Statut
Membre
Dernière intervention
17 juillet 2014
15 juil. 2014 à 16:44
15 juil. 2014 à 16:44
Voici mon code et qd je le lance il me surligne le RANGE de ma deuxieme boucle alors qu'avant de mettre les deux boucles d'affilé ca marché bien
Sub TEUformule()
'
' FORMULE TEU
' Définition des constantes pour n*VOYAGE
Const NF = "DATABASE"
Const lideb = 2
Const celns = "S10"
Dim li As Long, noserie
With Sheets(NF)
noserie = .Range(celns).Value
li = lideb
' Définition des constantes pour formule TEU
Const lidebteu = 2
lit = lidebteu
'Creation de la colonne TEU
Columns("G").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G1").Select
ActiveCell.FormulaR1C1 = "TEU"
'Début de la boucle - jusqua vide
While .Range("F" & lit) <> ""
.Range("G" & lit).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
'ligne +1
lit = lit + 1
Wend
End With
' NUMERO DE VOYAGE
'Debut de la boucle - jusqua cells vide
While .Range("B" & li) <> ""
.Range("A" & li).Value = noserie
'ligne +1
li = li + 1
Wend
End With
End Sub
Sub TEUformule()
'
' FORMULE TEU
' Définition des constantes pour n*VOYAGE
Const NF = "DATABASE"
Const lideb = 2
Const celns = "S10"
Dim li As Long, noserie
With Sheets(NF)
noserie = .Range(celns).Value
li = lideb
' Définition des constantes pour formule TEU
Const lidebteu = 2
lit = lidebteu
'Creation de la colonne TEU
Columns("G").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G1").Select
ActiveCell.FormulaR1C1 = "TEU"
'Début de la boucle - jusqua vide
While .Range("F" & lit) <> ""
.Range("G" & lit).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
'ligne +1
lit = lit + 1
Wend
End With
' NUMERO DE VOYAGE
'Debut de la boucle - jusqua cells vide
While .Range("B" & li) <> ""
.Range("A" & li).Value = noserie
'ligne +1
li = li + 1
Wend
End With
End Sub
Clarinette13006
Messages postés
6
Date d'inscription
mardi 15 juillet 2014
Statut
Membre
Dernière intervention
17 juillet 2014
15 juil. 2014 à 17:06
15 juil. 2014 à 17:06
C'est bon j'ai trouvé il y avait plein d'erreur mais ca marche :)
Merci en tout cas
Merci en tout cas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
15 juil. 2014 à 17:10
15 juil. 2014 à 17:10
.Range("A" & li).FormulaR1C1 = "=+IF(OR(RC[-1]=20,RC[-1]=40),IF(RC[-1]=20,1,2),0)"
Tu es en colonne A et RC[-1] fait appel à la colonne précédente, soit la colonne avant A, et là il n'y en a pas
Pour tester la colonne B le mettrai plutôt RC[+1]
Cdlmnt
Tu es en colonne A et RC[-1] fait appel à la colonne précédente, soit la colonne avant A, et là il n'y en a pas
Pour tester la colonne B le mettrai plutôt RC[+1]
Cdlmnt