Probleme boucle for...
Résolu/Fermé
alphonse
-
20 juil. 2011 à 14:17
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 21 juil. 2011 à 12:18
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 21 juil. 2011 à 12:18
A voir également:
- Probleme boucle for...
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Idm for mac - Télécharger - Téléchargement & Transfert
6 réponses
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
20 juil. 2011 à 14:22
20 juil. 2011 à 14:22
je ne sais pas trop le langage c'est mais dans beaucoup il faut mettre un double égal dans un if
If (B=="" & compteur3 == "")
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
20 juil. 2011 à 15:04
20 juil. 2011 à 15:04
Bonjour
compteur3 on connait, OK mais compteur ?
dans la cible de copy il faut que la surface soit la m^me de plus ta syntaxe est fausse
Copy Sheets("Tableau").Range("A" & compteur3 & ":W" & compteur3)
m^me punitopn pour la source
compteur3 on connait, OK mais compteur ?
dans la cible de copy il faut que la surface soit la m^me de plus ta syntaxe est fausse
Copy Sheets("Tableau").Range("A" & compteur3 & ":W" & compteur3)
m^me punitopn pour la source
Merci michel de ton aide, pour ta modification de syntaxe qui me sera sans doute utile... Mais le résultat est le même ... Rien...
Compteur est un autre chiffre qui fonctionne très bien et calculé et utiliséà travers de nombreuses pages.
Qu'entends tu par "dans la cible de copy, il faut que la surface soit la même" ?
si compteur = 45 et compteur3 = 46
Je copie (A45:A45) dans (A46)
Je ne vois toujours pas mon erreur...
Compteur est un autre chiffre qui fonctionne très bien et calculé et utiliséà travers de nombreuses pages.
Qu'entends tu par "dans la cible de copy, il faut que la surface soit la même" ?
si compteur = 45 et compteur3 = 46
Je copie (A45:A45) dans (A46)
Je ne vois toujours pas mon erreur...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je teste même sur un feuille totalement vierge
Private Sub CommandButton1_Click()
Dim compteur3 As Double
compteur3 = 46
For compteur3 = 46 To 51
If (B & compteur3 = "") Then
Sheets("Feuil1").Range("A1:W1").Copy Sheets("Feuil1").Range("A" & compteur3)
compteur3 = 51
Else
compteur3 = compteur3 + 1
End If
Next compteur3
End Sub
Le résultat et encore une fois le même... Rien...
Private Sub CommandButton1_Click()
Dim compteur3 As Double
compteur3 = 46
For compteur3 = 46 To 51
If (B & compteur3 = "") Then
Sheets("Feuil1").Range("A1:W1").Copy Sheets("Feuil1").Range("A" & compteur3)
compteur3 = 51
Else
compteur3 = compteur3 + 1
End If
Next compteur3
End Sub
Le résultat et encore une fois le même... Rien...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 20/07/2011 à 16:20
Modifié par michel_m le 20/07/2011 à 16:20
Tu as lu ce que je t'ai marqué ?
Voici la ligne en entier !!!
d'ailleurs, Tu aurais pu marquer (valeurs uniquement)
de plus, tu n'as pas besoin de boucle pour faire ta copie...
cette instruction te donne la ligne de la première cellule vide colonne B
Voici la ligne en entier !!!
Copy Sheets("Tableau").Range("A1":W1 )Copy Sheets("Tableau").Range("A" & compteur3 & ":W" & compteur3)
d'ailleurs, Tu aurais pu marquer (valeurs uniquement)
With Sheets("tableau") .Range("A1:W1") = .Range("A" & compteur3 & ":W" & compteur3).Value End With
de plus, tu n'as pas besoin de boucle pour faire ta copie...
cette instruction te donne la ligne de la première cellule vide colonne B
ligne_vide = Range("B46").End(xlDown).Row + 1
Merci Michel.
J'ai trouvé mon erreur... J'avais en plus oublié le Cells.Value... ça marche, mais c'est pas optimisé et donc que ça me bloque pour la suite. L'idée du "ligne_vide = Range("B46").End(xlDown).Row + 1" à l'air pas mal...
Le soucis c'est que :
Sheets("Tableau").Range("A" & compteur & ":W" & compteur).Copy Sheets("Tableau").Range(ligne_vide)
Le code fonctionne :
Dim compteur3 As Double
compteur3 = 46
For compteur3 = 46 To 51
If (Cells(B & compteur3).Value = "") Then
Sheets("Tableau").Range("A" & compteur & ":W" & compteur).Copy Sheets("Tableau").Range("A" & compteur3)
compteur3 = 51
Else
compteur3 = compteur3 + 1
End If
Next compteur3
End If
End If
J'ai trouvé mon erreur... J'avais en plus oublié le Cells.Value... ça marche, mais c'est pas optimisé et donc que ça me bloque pour la suite. L'idée du "ligne_vide = Range("B46").End(xlDown).Row + 1" à l'air pas mal...
Le soucis c'est que :
Sheets("Tableau").Range("A" & compteur & ":W" & compteur).Copy Sheets("Tableau").Range(ligne_vide)
Le code fonctionne :
Dim compteur3 As Double
compteur3 = 46
For compteur3 = 46 To 51
If (Cells(B & compteur3).Value = "") Then
Sheets("Tableau").Range("A" & compteur & ":W" & compteur).Copy Sheets("Tableau").Range("A" & compteur3)
compteur3 = 51
Else
compteur3 = compteur3 + 1
End If
Next compteur3
End If
End If
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
21 juil. 2011 à 12:18
21 juil. 2011 à 12:18
Bonjour,
décidément, tu as l'air bien tétu
abandon du suivi
décidément, tu as l'air bien tétu
abandon du suivi