A voir également:
- Boucler si une cellule est vide
- Excel cellule couleur si condition texte - Guide
- Comment supprimer une page vide sur word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Caractere vide - Guide
- Forum Excel
6 réponses
Bonjour
Hmmm quelques points a clarifier.
Reboucler c'est quoi pour toi ?
Et aussi, afin que les instruction ne soit pas suivies
Quelles instruction ? Il n'y a rien dans l'exemple de code.
Je ne vois pas non plus IsEmpty(ActiveCell) dans une boucle for.
Habituellement, on utilise range ou cells
For i = 491 To 500
if isempty(Range("A" & i)) then
Au lieu de IsEmpty, il y a peut-etre MergeCells qui serait plus approprié.
For i = 491 To 500
If Range("A" & i).MergeCells = False then
faire des instructions
Else
faire d'autre instructions
End If
Hmmm quelques points a clarifier.
Reboucler c'est quoi pour toi ?
Et aussi, afin que les instruction ne soit pas suivies
Quelles instruction ? Il n'y a rien dans l'exemple de code.
Je ne vois pas non plus IsEmpty(ActiveCell) dans une boucle for.
Habituellement, on utilise range ou cells
For i = 491 To 500
if isempty(Range("A" & i)) then
Au lieu de IsEmpty, il y a peut-etre MergeCells qui serait plus approprié.
For i = 491 To 500
If Range("A" & i).MergeCells = False then
faire des instructions
Else
faire d'autre instructions
End If
Bonjour,
Il est certainemment trop tard ou trop compliqué de reprendre la construction du fichier mais:
plutôt que d'utiliser des cellules fusionnées
par exemple:
cellules A1:B1 sélectionnées
alignement
horizontal
centré sur plusieurs colonnes
ce qui, au age, semblerait coincider avec ta narration
si A1:B1 fusionnéd'autre part, quand tu appeles une mergecells, tu as toujours A1 d'affiché
et comme mes 2 camarades que je salue: reboucler ?????
Il est certainemment trop tard ou trop compliqué de reprendre la construction du fichier mais:
plutôt que d'utiliser des cellules fusionnées
par exemple:
cellules A1:B1 sélectionnées
alignement
horizontal
centré sur plusieurs colonnes
ce qui, au age, semblerait coincider avec ta narration
si A1:B1 fusionnéd'autre part, quand tu appeles une mergecells, tu as toujours A1 d'affiché
et comme mes 2 camarades que je salue: reboucler ?????
Bonjour,
Excusez moi je me suis vraiment mal exprimé...
En plus claire, si ma cellule est vide
il faudrait qu'il ne "se e rien" et que "je e" à la colonne 492.
Désolé pour la longueur du code, mais je reprends :
Merci d'avance,
sébastien
Excusez moi je me suis vraiment mal exprimé...
En plus claire, si ma cellule est vide
il faudrait qu'il ne "se e rien" et que "je e" à la colonne 492.
Désolé pour la longueur du code, mais je reprends :
For i = 491 To 500 If IsEmpty(ActiveCell) = False Then ' ******il faut que je e sur la colonne 492 (sur la boucle for)******* Else nom = Worksheets("Résultats").Cells(1, i).Value Workbooks("classeur 2.xlsx").Activate For j = 13 To 15 Cells.Find(What:=nom, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ligne = ActiveCell.Row colonne = ActiveCell.Column ligne13 = ligne + j Workbooks("classeur 2.xlsx").Activate Worksheets("résultats").Cells(ligne13, colonne).Select If j = 13 Then MmDa = ActiveCell End If If j = 14 Then deuxMhuitM = ActiveCell End If Next End If Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM Next End Sub
Merci d'avance,
sébastien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question Bonjour tout le monde.
Allez, au hasard....
Pouf pouf...
Enlève ton Else et change de place ton End If :
devient :
Soit :
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Allez, au hasard....
Pouf pouf...
Enlève ton Else et change de place ton End If :
End If Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM
devient :
Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM End If
Soit :
For i = 491 To 500 If IsEmpty(ActiveCell) = False Then ' ******il faut que je e sur la colonne 492 (sur la boucle for)******* nom = Worksheets("Résultats").Cells(1, i).Value Workbooks("classeur 2.xlsx").Activate For j = 13 To 15 Cells.Find(What:=nom, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ligne = ActiveCell.Row colonne = ActiveCell.Column ligne13 = ligne + j Workbooks("classeur 2.xlsx").Activate Worksheets("résultats").Cells(ligne13, colonne).Select If j = 13 Then MmDa = ActiveCell End If If j = 14 Then deuxMhuitM = ActiveCell End If Next Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM End If Next End Sub
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
For i = 491 To 500 If IsEmpty(ActiveCell) = False Then ' ******si la cellule est vide, je voudrais revenir directement à la boucle '****** for, et ainsi sauter les instruction en dessous ' ******ceux ci me permettrait de er à la colonne suivante, qui elle ' *******n'est pas vide '****** je pense que faire celà, il faut un '******* If IsEmpty(ActiveCell) = False Then ... quelle est la suite... Else ' à l'inverse, si la cellule n'est pas vide : je suis l'instruction suivante: nom = Worksheets("Résultats").Cells(1, i).Value Workbooks("classeur 2.xlsx").Activate For j = 13 To 15 Cells.Find(What:=nom, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ligne = ActiveCell.Row colonne = ActiveCell.Column ligne13 = ligne + j Workbooks("classeur 2.xlsx").Activate Worksheets("résultats").Cells(ligne13, colonne).Select If j = 13 Then MmDa = ActiveCell End If If j = 14 Then deuxMhuitM = ActiveCell End If Next End If Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1.xlsm").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM Next End Sub
En espérant que vous me comprendrez mieux cette fois ci...
Soit :
1- tu prends le problème à l'inverse en disant : si ma cellule n'est pas vide :
ou
2- tu testes si ta cellule est vide et si oui, tu ne fais rien sinon ton action :
1- tu prends le problème à l'inverse en disant : si ma cellule n'est pas vide :
If Not IsEmpty(ActiveCell) Then
ou
If ActiveCell <> "" Then
2- tu testes si ta cellule est vide et si oui, tu ne fais rien sinon ton action :
If IsEmpty(ActiveCell) Then 'On ne fait rien Else 'tes instructions End If
Ok, parfait tout e bien pour cela,
cependant,
j'ai un autre problème...
Je souhaite aller rechercher dans un autre fichier des valeurs qui se situent 13 et 14 lignes plus bas.
Cependant,
il faut que j'aille rechercher dans (classeur 2) un numéro que j'appelle "nom",
lorsque je recherche cette cellule (nom) dans mon classeur 2, à partir de l'éditeur de recherche,
et que je colle mes valeur dans classeur 1,
les valeurs renvoyées sont toutes les mêmes, à savoir sur la ligne 99 j'ai une valeur y, et sur la ligne 100 j'ai une autre valeur z,
et lorsque la boucle tourne, j'ai mes valeur y et z sur toutes les colonnes (entre 491 et 500)
Je pense qu'il doit y avoir un problème ma recherche de cellule, mais imposible de la corriger,
voici le code :
Vous en remerciant par avance,
cordialement,
sébastien
cependant,
j'ai un autre problème...
Je souhaite aller rechercher dans un autre fichier des valeurs qui se situent 13 et 14 lignes plus bas.
Cependant,
il faut que j'aille rechercher dans (classeur 2) un numéro que j'appelle "nom",
lorsque je recherche cette cellule (nom) dans mon classeur 2, à partir de l'éditeur de recherche,
et que je colle mes valeur dans classeur 1,
les valeurs renvoyées sont toutes les mêmes, à savoir sur la ligne 99 j'ai une valeur y, et sur la ligne 100 j'ai une autre valeur z,
et lorsque la boucle tourne, j'ai mes valeur y et z sur toutes les colonnes (entre 491 et 500)
Je pense qu'il doit y avoir un problème ma recherche de cellule, mais imposible de la corriger,
voici le code :
Sub Macro1() For i = 491 To 510 'Workbooks("classeur 1").Activate nom = Worksheets("Résultats").Cells(1, i).Value If IsEmpty(ActiveCell) = False Then ' Worksheets("Résultats").Cells(1, i).Value = Else Workbooks("classeur 2").Activate Cells.Find(What:=nom, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate For j = 13 To 15 ligne = ActiveCell.Row colonne = ActiveCell.Column ligne13 = ligne + j Workbooks("classeur 2").Activate Worksheets("IPC résultats PF").Cells(ligne13, colonne).Select If j = 13 Then MmDa = ActiveCell End If If j = 14 Then deuxMhuitM = ActiveCell End If Next End If Workbooks("classeur 1").Activate Worksheets("Résultats").Cells(99, i).Select ActiveCell = MmDa Workbooks("classeur 1").Activate Worksheets("Résultats").Cells(100, i).Select ActiveCell = deuxMhuitM Next End Sub
Vous en remerciant par avance,
cordialement,
sébastien
Bonjour,
Le meilleur outil de débuggage est la trace pas à pas.
Dans la marge de gauche, un clic permet de mettre un point d'arret.
Et vous faites exécuter le code ligne par ligne avec F8 pour avancer à la prochaine ligne.
Durant l'exécution, promener la souris sur les variables pour voir leur valeur.
Quel est la valeur de nom, de ligne, de de colonne de ligne13 ???
Vous allez voir quelle cellule est trouvé et si cela correspond à ce que vous attendiez.
Le meilleur outil de débuggage est la trace pas à pas.
Dans la marge de gauche, un clic permet de mettre un point d'arret.
Et vous faites exécuter le code ligne par ligne avec F8 pour avancer à la prochaine ligne.
Durant l'exécution, promener la souris sur les variables pour voir leur valeur.
Quel est la valeur de nom, de ligne, de de colonne de ligne13 ???
Vous allez voir quelle cellule est trouvé et si cela correspond à ce que vous attendiez.