Boucle excel

riccardovegas

XLDnaute Junior
Bonjour,
je dois réaliser une extraction de données, pour cela j'ai besoin de copier des cellules par exemple A2 jusqu'à A17 (dans le cas présent) - de façon générique : copier vers le bas tant que la cellule est vide!
Je dois effectuer cela sur plusieurs colonne.
Je ne sais pas comment procéder.
merci de votre aide.

Riccardovegas
celleacopier.jpg
 

Pièces jointes

  • COPIE_VERS_LE BAS.xlsx
    13.4 KB · Affichages: 68

camarchepas

XLDnaute Barbatruc
Re : Boucle excel

Bonjour ,

une solution possible par boucle en effet .

Code:
Sub Complete()
Dim lignefin As Long, Tourne As Long
Dim MemSecu As String, MemChant As String

lignefin = Range("d" & Rows.Count).End(xlUp).Row

For Tourne = 2 To lignefin
  If Range("A" & Tourne) <> "" Then
     MemSecu = Range("A" & Tourne)
   Else
    Range("A" & Tourne) = MemSecu
  End If

  If Range("B" & Tourne) <> "" Then
     MemChant = Range("B" & Tourne)
   Else
     Range("B" & Tourne) = MemChant
  End If

Next Tourne

End Sub
 

CBernardT

XLDnaute Barbatruc
Re : Boucle excel

Bonjour à tous,

1- mettre par exemple en A3 la formule : = A2
2- Copier cette formule
3- Sélectionner toute la zone du tableau
4- faire le menu : Accueil/Rechercher et Sélectionner puis Sélectionner les cellules et cocher cellules vides et Ok
5- Click droit souris et coller fonction.
 

riccardovegas

XLDnaute Junior
Re : Boucle excel

Bonjour à tous,

1- mettre par exemple en A3 la formule : = A2
2- Copier cette formule
3- Sélectionner toute la zone du tableau
4- faire le menu : Accueil/Rechercher et Sélectionner puis Sélectionner les cellules et cocher cellules vides et Ok
5- Click droit souris et coller fonction.


Bonjour et merci de me répondre
Cela conviendrait si on connait à l'avance la dispo des cellules pleines. En plus il ya pres de 5000 lignes à traiter car dans le fichier c'est juste un échantillon
N'y a t il pas une autre solution, du type:

etape 1 regarde en colonne A si il y a une info duplique là vers le bas tant que tu ne rencontre pas de cellule occupée;
etape 2 regarde en colonne B si il y a une info duplique là vers le bas tant que tu ne rencontre pas de cellule occupée.
 

Staple1600

XLDnaute Barbatruc
Re : Boucle excel

Bonjour à tous


Si j'ai bien compris le but
(test avec la colonne A (avec des vides) et colonne B sans vide)
Code:
Sub FillVidesAvecCellDessus()
Dim dl&
dl = Cells(Rows.Count, 2).End(3).Row
With Range("A1:A" & dl)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
 

riccardovegas

XLDnaute Junior
Re : Boucle excel

Le code ne me traite que la colone A et pas la B

cdt

Bonjour à tous


Si j'ai bien compris le but
(test avec la colonne A (avec des vides) et colonne B sans vide)
Code:
Sub FillVidesAvecCellDessus()
Dim dl&
dl = Cells(Rows.Count, 2).End(3).Row
With Range("A1:A" & dl)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Boucle excel

Bonjour à tous


Tester avec cette modifs
(la macro se base sur la dernière ligne non vide trouvée en colonne C)
Code:
Sub FillVidesAvecCellDessusII()
Dim dl&
dl = Cells(Rows.Count, 3).End(3).Row
With Range("A1:B" & dl)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
01fill.jpg
 
Dernière édition:

riccardovegas

XLDnaute Junior
Re : Boucle excel

Il semeble que le code bloque!
je l'ai inclu dans ma macro en step1 qui est suivi par step 2

en effet je lance ma macro compil qui appel step1 et step2

j'avais essayé avec la macro de camarchepas ca fonctionne mais très lent. peut etre dû à une erreur de ma part (surement même) car je suis nul en macro. donc je m'appuie de la macro automatique d'excel puis essaye de la simplifier ensuite.

De plus comme vous le voyez j'ai un doc word qui doit être intégré dans l'onglet SOURCE PDVI
comment puis je dire à ma macro : va chercher le doc et fait un copier coller automatique dans l'onglet SOURCE PDVI?

Merci pour votre soutien


Bonjour à tous


Tester avec cette modifs
(la macro se base sur la dernière ligne non vide trouvée en colonne C)
Code:
Sub FillVidesAvecCellDessusII()
Dim dl&
dl = Cells(Rows.Count, 3).End(3).Row
With Range("A1:B" & dl)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
Regarde la pièce jointe 319138
 

Pièces jointes

  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 40
  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 38
  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 30
  • EXTRACT-PDVI-VERSION 8.0.xlsm
    120.2 KB · Affichages: 33

camarchepas

XLDnaute Barbatruc
Re : Boucle excel

Bonjour,
Voilà pour aller un peu plus vite .

Code:
Sub Complete()
Dim lignefin As Long, Tourne As Long
Dim MemSecu As String, MemChant As String

Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False

lignefin = Range("d" & Rows.Count).End(xlUp).Row
 
For Tourne = 2 To lignefin
   If Range("A" & Tourne) <> "" Then
      MemSecu = Range("A" & Tourne)
    Else
     Range("A" & Tourne) = MemSecu
   End If
 
  If Range("B" & Tourne) <> "" Then
      MemChant = Range("B" & Tourne)
    Else
      Range("B" & Tourne) = MemChant
   End If
 
Next Tourne
Application.EnableEvents = True
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub
 

riccardovegas

XLDnaute Junior
Re : Boucle excel

Cela ne semble pas fonctionner j'ai une erreur de debogage
 

Pièces jointes

  • EXTRACT-PDVI-VERSION 7.2.xlsm
    120.5 KB · Affichages: 38
  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 37
  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 65
  • Liste des agents habilités par Fonction de sécurité2.docx
    21.1 KB · Affichages: 70

Discussions similaires

Réponses
16
Affichages
663