je cherche depuis quelques heures mais malgré mes tests au gré de mes trouvailles sur les différents forums, rien n'y fait.
Voici le problème : j'ai une suite de valeur de 1 à 5.
Etape 1 : Déterminer les nombres pairs uniquement.
Etape 2 : insérer ces nombres pairs dans un nouveau tableau,
Etape 3 : identifier le nombre de valeurs dans ce tableau,
Etape 4 : enfin me servir de ce nombre dans une boucle "for next".
Pour l'étape 1, j'ai tenté d'utiliser une boucle "for next" avec un "step" de 2. Si j'utilise les valeurs obtenues directement, elles sont utilisables.
Mais quand j'essaie de passer à l'étape 2, je bloque... et donc l'étape 3 impossible...
Re : VBA identifier et copier valeurs d'un tableau
Salut alexvol
Si tes chiffres sont dans les cellules A1:A5, tu peux essayer ceci
Code:
Sub Test()
Dim NbInc As Integer, Inc As Integer
NbInc = Combien()
For Inc = 1 To NbInc
MsgBox "Boucle " & NbInc & " fois"
Next Inc
End Sub
Function Combien()
Dim Inc As Integer, NbPair As Integer
NbPair = 0
For Inc = 1 To 5
If Range("A" & Inc) Mod 2 = 0 Then
NbPair = NbPair + 1
End If
Next Inc
Combien = NbPair
End Function
Re : VBA identifier et copier valeurs d'un tableau
Merci de ces propositions mais les chiffres ne sont pas dans une feuille.
Quelques explications supplémentaires :
- j'ai une valeur en "A1" ;
- je copie le format des cellules "A2" à "D4".
- je souhaite faire des "collage" en fonction de la valeur en "A1" :
- pour tous les chiffres pairs, à droite de la sélection, si 2, 1 fois avec un simple décalage horizontale, si 4, 1ère copie avec simple décalage horizontale, 2nde copie avec décalage horizontale et verticale, et ainsi de suite ;
- pour tous les chiffres impairs, en dessous de la sélection.
Au départ, pour envisager les différentes possibilités de valeur de "A1", j'avais utilisé un "select case" mais cela peut devenir très long.
Voici le code envisagé au départ :
Code:
Sub CopieFonctionNbreEquipe()
With Worksheets("calendriersType")
Dim calenType As Range
Dim celRef As Range
Dim nbreEquipe As Range
Set celRef = .Range("a5")
Set nbreEquipe = .Range("i1")
Set calenType = .Range("a5:d13")
calenType.Copy
Select Case nbreEquipe
Case Is = 2
celRef.Offset(0, 4).PasteSpecial Paste:=xlFormats
Case Is = 3
Case Is = 4
Case Is = 5
End Select
End With
End Sub
Re : VBA identifier et copier valeurs d'un tableau
Suis pas sur d'avoir tout compris
la zone multicolore A2D5, c'est le motif que tu veux copier coller autant de fois que tu le demandes en cellule A1 ?
si tu mets 2: tu veux 2 motifs cote à cote
si tu mets 3 2 cotes à cote +1 en dessous du premier
4: 2 *2 motifs l'un en dessous de l'autre.. etc etc...?
Re : VBA identifier et copier valeurs d'un tableau
En gros c'est le principe, presque :
si 2, un motif à côté,
si 3, un motif à côté et un autre juste dessous,
si 4, un motif à côté, un autre juste dessous et un qui sera en dessous avec un décalage vers la droite,
Re : VBA identifier et copier valeurs d'un tableau
Cela fonctionne parfaitement mais j'ai des questions car j'aime comprendre :
- je ne comprends pas le "i < NbDeMotifs" : tant que i est inférieur au nombre de motif, la boucle se poursuit. Mais c'est toujours le cas puisque i a reçu pour valeur 1 juste avant.
- est-il possible de remplacer "Application.Goto Reference:="Motif"" par un simple "range".
Merci pour les réponses